Ensuring secure access by a service provider to one of a plurality of mobile electronic wallets

ABSTRACT

Facilitating exclusive access to a workflow of a service provider via a mobile wallet interface involves, within a client runtime environment, activating through the interface a service provider-specific application so that the service provider-specific application has exclusive access to a secure electronic transaction workflow of the service provider associated with at least one of the service provider-specific application and the wallet, while being denied access by the client runtime environment to any other service provider services or resources.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.13/909,262 filed Jun. 4, 2013, entitled “A SECURE ECOSYSTEMINFRASTRUCTURE ENABLING MULTIPLE TYPES OF ELECTRONIC WALLETS IN ANECOSYSTEM OF ISSUERS, SERVICE PROVIDERS, AND ACQUIRES OF INSTRUMENTS”.U.S. patent application Ser. No. 13/909,262 is a continuation of U.S.patent application Ser. No. 13/651,028 filed Oct. 12, 2012 and nowabandoned, entitled “A MULTI-TIERED SECURE MOBILE TRANSACTIONS ENABLINGPLATFORM”.

U.S. patent application Ser. No. 13/651,028 claims the benefit of U.S.provisional patent application 61/546,084 filed Oct. 12, 2011 and U.S.provisional patent application 61/619,751 filed Apr. 3, 2012.

This application is related U.S. patent application Ser. No. 11/931,872,filed Oct. 31, 2007, entitled “System and methods for servicingelectronic transactions”.

Each of the foregoing applications is incorporated herein by referencein its entirety.

This application is related to the following U.S. patents, each of whichis incorporated herein by reference in its entirety: U.S. Pat. No.6,769,607, filed Jun. 6, 2000, entitled “Point of sale and displayadapter for electronic transaction device”; U.S. Pat. No. 6,705,520,filed Nov. 15, 1999, entitled “Point of sale adapter for electronictransaction device”; U.S. Pat. No. 5,590,038, filed Jun. 20, 1994,entitled “Universal electronic transaction card including receiptstorage and system and methods of conducting electronic transactions”;U.S. Pat. No. 5,884,271, filed Sep. 6, 1996, entitled “Device, systemand methods of conducting paperless transactions device”, U.S. Pat. No.6,925,439, filed Mar. 10, 1999, entitled “Device, system and methods ofconducting paperless transactions”; U.S. Pat. No. 7,308,426, filed Aug.11, 1999, entitled “System and methods for servicing electronictransactions”; and U.S. Pat. No. 7,366,990, filed Jan. 19, 2001,entitled “Method and system for managing user activities and informationusing a customized computer interface”.

BACKGROUND

1. Field

The methods and systems of a multi-tier mobile transaction platform forsecure personalized transactions in a multi-domain ecosystem generallyrelates to mobile transaction processing security.

2. Description of the Related Art

Mobile transactions are becoming the most prevalent form of point ofsale payments. Existing systems for mobile transaction processing do nothave the scalability and flexibility of configurability needed toaddress the ever growing demand for secure personalized transactionservices and client contact to meet future business needs.

SUMMARY

A mobile transaction platform (MTP) may comprise a carrier-grade,infrastructure platform that may facilitate the development and deliveryof secure transactional services, both mCommerce (e.g. over-the-air) andmPayment (e.g. Near Field Communication (NFC) Proximity), to a broadrange of mobile phone environments. A MTP may include an enhancedsoftware development methodology to further simplify development andhide phone environment-specific complexities from the developer byproviding a consistent, common development environment. Native phonefeatures may also be exposed during development to allow developers todefine native phone experiences and the like while still benefittingfrom a common and robust development methodology and environment. Onebenefit of using the MTP is rapid mobile service development for a broadrange of mobile handsets to quickly build a profitable mobiletransaction ecosystem.

In addition, disclosed herein is an end-to-end secure transactionenvironment in which a trust model is applied that ensures not onlysecure electronic transactions but provides secure and safe electronicbusiness operations among users, payment facilities, and merchantsthrough the use of dynamic authentication of each user, each deviceoperated by a user, and each transaction and/or service domain. Thedisclosed trust model ensures that, for example, users and merchants canconduct transactions without the use of “middle men” to ensure safe andreliable commerce. By authenticating a user through one or more mainservice facilities and by authenticating merchants and other providersthrough such main service facilities it is possible for each merchant tohave a unique yet secure relationship with each user through any deviceon which the user has been authenticated to the main service facility.However, through use of a main service facility for authentication andenabling a robust trust model, multiple merchants (e.g. providers ofproducts, financial services, and many other services described herein)may securely and directly transact with a single user. In this way aplurality of authenticated merchants may be available to the user in anaggregated portfolio that may facilitate greatly improved secureelectronic commerce.

Aspects of an e-business environment may include a provider domain (e.g.banks, merchants, etc.) that may be accessed through a wallet platformand provides the ability to build out wallet and widget capability toenable looking at an electronic transaction environment from a riskmanagement perspective. In an example, cross selling across theecosystems may take advantage of the methods and systems describedherein thereby allowing mapping of risk management into the e-commerceprocess.

Aspects of a secure multi-domain ecosystem environment may extend theenvironment to the consumer. Once a consumer is authenticated into suchan environment one may have the ability to establish trust models thatmay enable delivery of a particular instance of services by a singletrust model. Other products/services may be delivered by the use ofother trust models.

Also, the methods and systems herein may facilitate extending a securitytunnel to merchants that may be embodied as a tunnel within a tunnel,which may enable a core security architecture. In this way businessescan avoid getting bogged down with security rather than focusing onapplications that will provide a sustainable business model. In anexample, the methods and systems herein may enable a business person tolook at the frequency of use of applications (e.g., 3×/day vs. 3×/month)to help envision a significantly different trust model for each of arange of different user interaction models.

These and other systems, methods, objects, features, and advantages ofthe present invention will be apparent to those skilled in the art fromthe following detailed description of the preferred embodiment and thedrawings. All documents mentioned herein are hereby incorporated intheir entirety by reference.

BRIEF DESCRIPTION OF THE FIGURES

The invention and the following detailed description of certainembodiments thereof may be understood by reference to the followingfigures:

FIG. 1 illustrates a dynamic ecosystem 100 for secure mCommerce andmPayment transactions.

FIG. 2 illustrates a mobile transaction platform (MTP) high levelstructure.

FIG. 3 illustrates mobile transaction platform (MTP) architecture.

FIG. 4 illustrates a high level architectural view of a walletapplication with a MTP mClient runtime.

FIG. 5 illustrates an overview of a widget development process withreference to a development cycle.

FIG. 6 illustrates an overview of an ecosystem for a secure personalizedtransaction.

FIG. 7 illustrates an exemplary client architecture for use in anecosystem for secure personalized transactions.

FIG. 8 illustrates an ecosystem for secure personalized transactionsincluding an MTP structural configuration with a protocol abstractionsupport capability.

FIG. 9 illustrates an alternate configuration of an ecosystem for securepersonalized transactions as illustrated in the FIG. 8.

FIG. 10 illustrates a notion of a tiered platform that may span a rangeof ecosystem elements.

FIG. 11 illustrates an embodiment of selecting ecosystem features forinclusion in each of an enabling tier, a service tier, and apersonalization tier of a multi-domain ecosystem platform for securepersonalized transactions.

FIG. 12 illustrates an expert engine for facilitating modifying each ofa personalization and a service tier for each of a plurality of serviceproviders in a multi-domain ecosystem for secure personalizedtransactions.

FIG. 13 illustrates an embodiment of selecting business needs and devicefunctionality for inclusion in each of an enabling tier, a service tier,and a personalization tier of a multi-domain ecosystem platform forsecure personalized transactions.

FIG. 14 illustrates a method of developing a widget.

FIG. 15 illustrates a method of widget usage.

FIG. 16 illustrates a transaction flow diagram for installing a widget.

FIG. 17 illustrates a state diagram depicting a lifecycle of a widget ina MTP system.

FIG. 18 illustrates a widget lifecycle from development to execution.

FIG. 19 illustrates a high level view of an access control mechanism.

FIG. 20 illustrates a method for loading and execution of a widget withrespect to the access controller.

FIG. 21 illustrates a widget runtime footprint based on a widget accesscontrol policy.

FIG. 22 illustrates a widget approval process.

FIG. 23 illustrates an exemplary and non-limiting embodiment of widgetarchitecture.

FIG. 24 illustrates a high level architecture view of a client-devicecontainer.

FIG. 24A illustrates a detailed view of mobile transaction platformrelated elements of a mobile device.

FIG. 24B illustrates wallet companion domain features, and control anddata flow.

FIG. 25 illustrates an offer or coupon-related transaction flow diagram.

FIG. 26 illustrates a state machine diagram of the coupon applet duringthe transaction flow according to an example.

FIG. 27 illustrates an interaction between an applet and a Point of saleterminal.

FIG. 28 illustrates a state machine diagram of the coupon applet duringthe transaction flow according to an example.

FIG. 29 illustrates a high level architecture of a system for adeployment of the present invention in an exemplary embodiment.

FIG. 30 illustrates a flow chart describing a method of installing themobile wallet on the mobile phone of the user using SMS with a downloadURL.

FIGS. 31A and 31B illustrates a method for wallet activation by theuser.

FIG. 32 illustrates a method as an example of the search and downloaduse case.

FIG. 33 illustrates an exemplary method for the OTA-transaction.

FIG. 34 illustrates a method as an example for the card issuance usecase.

FIG. 35 illustrates a method as an example to terminate a wallet.

FIG. 36 illustrates a method as an example for publishing a widget.

FIG. 37 is a method for adding a widget for the first time along with aTSM interaction.

FIG. 38 is a behavioral model of a system for widget access verificationwith reference to the widget loading time signature, verification, andexecution time access verification.

FIG. 39 illustrates a dynamic ecosystem for secure commerce and paymenttransactions.

FIG. 40 illustrates a method of protocol abstraction in a dynamicecosystem for secure commerce and payment transactions.

FIG. 41 illustrates a method of tokenization of transaction content in adynamic ecosystem for secure commerce and payment transactions.

FIG. 42 illustrates a point-of-sale device to receive a dynamic tokenfrom a mobile wallet running on a mobile device.

FIG. 43 illustrates a method of generating a token for an electronictransaction wrapper for secure content traversing a network in a dynamicecosystem for secure commerce and payment transactions.

FIG. 44 illustrates a method of tokenization of a transaction wrapper ina dynamic ecosystem for secure commerce and payment transactions.

FIG. 45 illustrates a method of performing electronic transactionsacross an open network by transmitting a dynamically generated tokenizedwrapper that includes a token representing transaction content in adynamic ecosystem for secure commerce and payment transactions.

FIG. 46 illustrates a method of protocol abstraction in transaction flowthat includes multiple acquisition methods with a single issuing bank.

FIG. 47 illustrates a method of protocol abstraction in over-the-airtransaction flow that includes single acquisition method and multipleissuing banks

FIG. 48 illustrates a method of tokenized transactions, tokenizedprotocol abstraction, and tokenized wrapper.

FIG. 49 illustrates an single trust domain model.

FIG. 50 illustrates the single trust cluster model as illustrated inFIG. 50, which may assume that a trusted third part is accessible in theecosystem.

FIG. 51 illustrates a multiple trust cluster model.

FIG. 52 illustrates a direct trust relationship where no two entitiesare compelled to trust each other.

FIG. 53 illustrates message bus communication architecture.

FIG. 54 illustrates a high level block diagram of various subsystems ofa payment facilitator system.

FIG. 55 shows various components of the wallet.

FIG. 56 illustrates a high level block diagram of the deployment model5600 maybe based in a payment facilitator container.

While described herein with reference to various embodiments, it isunderstood that, in all cases, unless otherwise specified, references toan “embodiment” or “embodiments” refer to one or more exemplary andnon-limiting embodiments. Also, it is understood that, in alldescriptions herein, unless otherwise specified, even when notexplicitly being referenced to an “embodiment” or “embodiments” refer toone or more exemplary and non-limiting embodiments.

A multi-domain ecosystem may be configured for secure personalizedtransactions via a multi-tiered secure mobile transactions enablingplatform that may comprise an enabling tier, a service tier, apersonalization tier, an expert tier, and an experience framework tier.A multi-domain ecosystem may include a plurality of service providers,instrument issuers, mobile transaction processors, transactionacquirers, third-party authenticators, and a plurality of usersaccessing the ecosystem via a diversity of electronic devices. Amulti-tiered secure mobile transactions ecosystem-enabling platform asdescribed herein may facilitate any ecosystem participant to configureaspects of the ecosystem to satisfy a set of unique business modelneeds. The multi-tiered secure mobile transactions ecosystem enablingplatform may offer software development and element configuration toolsto prepare and personalize electronic wallets, active device widgets,back-end infrastructure runtime code, and the like that target specificbusiness model and/or trust model needs. By facilitating secure,trusted, ecosystem operations (e.g. issuance, maintenance, and use ofelectronic wallets) the platform may support securely transacting via asingle mobile device with a large number of distinct domains. Byproviding tools to personalize functional elements (e.g. widgets) fordeployment in mobile devices, the platform may facilitate, secure,customized transaction-related communication between the plurality ofdistinct domains (e.g. distinct service providers) and a user, such as acustomer, that may increase opportunities for interacting with thecustomer by a factor of ten or more.

A multi-tiered secure mobile transactions enabling platform, which mayalternatively be coined a mobile transaction platform or MTP, maydeliver secure transaction functionality for users, enabling anecosystem of participants which include service providers,issuers/acquirers of instruments and services, related support and valueadded service providers, and distribution networks, among others. Amulti-tiered secure mobile transaction enabling platform may bedelivered through well structured software and/or hardware modulesfocused on delivering capabilities such as direct service provider touser communication, messaging and notification, security andauthentication, over-the-air (OTA) provisioning, OTA trusted servicemanager (TSM) proxy operation, client-based secure ecosystem containeroperation, wallet and widget management, transaction engine operation,digital instrument management, location and/or geo-fencing support,augmented reality, and the like.

The methods and systems of a multi-tier mobile transaction platform forsecure personalized transactions in a multi-domain ecosystem mayfacilitate establishing and operating a market place or exchange oftransaction-related credentials. These credentials may be tokenized ormay not be tokenized, subject to the requirement of their respectiveissuers and acquirers, related to payment and non-payment services, andthe like. These credentials may be transacted over-the-air and inproximity environments over host of channels, such as point of saleterminals, and the like. By employing these methods and systems that mayenable such a transaction-related credential exchange, a key businessproblem related to scaling such an ecosystem may be solved. Thisexchange of transaction-related credentials may completely remove theneed for a single service provider to embed themselves as the effectiveexchange of such transaction credentials, and rather allow for existingissuers, acquirers and service providers (and/or consumers of suchcredentials) to continue to leverage their existing systems, business,and risk-management practices. Such an exchange will add value byleveraging the aspects of the mobile transaction platform describedherein including various deployment models, configurable ecosystemrules, underlying aggregation security architecture and configurablesecurity trust models, necessary tools, utilities, web-services, mobiledevice and server applications (e.g. wallets, containers, widgets,wallet companion domains), and the like. The result may be high qualityservice delivery in a highly scalable enterprise environment forensuring the different ecosystem participants can be integrated and newparticipants can be added without burdensome overhead.

FIG. 1 illustrates a dynamic ecosystem 100 for secure mCommerce andmPayment transactions. The ecosystem 100 may be described herein. TheMTP 114 may be configured to power a dynamic ecosystem for securemCommerce and mPayment transactions as described below. The MTP may beset up in a network provider's domain 102 and integrated into a systemof the network provider 104. In an example, an enterprise service bus(ESB) 108 of the network provider 104 may be used for integration. TheMTP 114 may be connected to an ecosystem of service and securityproviders 110, which may include one or more trusted service managers(TSMs), for example, 112 a, 112 b. The network provider 104 may use theMTP 114 to create a branded mobile application targeting a specificbusiness vertical. In an example, the mobile application may be amWallet for the retail/financial domain or a mHealth application for thehealthcare vertical. In an example, the mobile application may provide acore set of services to a user, specific to a domain for which it mayhave been created. For the purpose of this invention, the mobileapplication may be a wallet assuming a retail domain application. In anexample, the wallet may also facilitate, application lifecycle andsecurity, standardized user experience and widget managementresponsibilities. The widget may provide specific business services andcomplies with the wallet guidelines. The mobile application may bedownloaded onto a user handset 118. The ecosystem of services 110 may beconfigured to authenticate any transaction done over the handset 118. Inan example, the user handset 118 may be used at a merchant terminal 120.The merchant terminal 120 may be configured to receive communicationfrom the ecosystem cloud 110 regarding the widget authentication of theuser handset 118 widget 122, when used in vicinity of the merchantterminal 120 for effecting a transaction.

In an example, individual, independent service providers may use the MTPSDK to build widgets that may be loaded into the wallet. These widgetsmay provide incremental, functionality that may enhance the overallappeal of the mobile application. The wallet and the widgets may providethe users with OTA value added services (VAS) and proximity NFCservices. The container (or MTP mClient runtime) may provide the walletand the widgets a secure runtime environment and the services tocommunicate OTA with the server (OTA services) and also communicate withthe secure element to manage payment and non-payment applets forproximity NFC transactions.

In an example, the widgets may have an associated applet running in thesecure element. In an example, the widgets may not have an associatedapplet running in the secure element. In an example, the serviceproviders may only choose to provide only OTA services. In an example,the MTP and TSMs may collaborate together to provide the entire NFCexperience. In an example, the wallet and the widget (including softcard) provisioning, setup and management may be handled by the MTP,while applet issuance and personalization may be done by the TSM. In anexample, the network provider may ensure that the NFC readers atmerchant locations may be equipped to handle the proximity protocolsthat may be used by the various applets that may have been loaded intothe phone's SE. These readers may then process the transaction throughan acquiring network that may switch the transaction to the appropriateecosystem service provider in the cloud. The wallet and/or the widgetmay communicate with the ecosystem cloud to determine service status andvarious other VAS requirements like balance, transaction history, storedvalue top up, and the like.

In exemplary and non-limiting embodiments, the MTP may be configured forproviding the wallet, the widget, and manage the transaction along withall the relevant business services that may be associated withdelivering wallets to a universe of diverse mobile environments. Inexemplary and non-limiting embodiments, the MTP may be configured forproviding an improved SDK that may to help build a wallet and ecosystemof service providers that may create widgets with elaborate feature setswithout having to worry about handset fragmentation. In exemplary andnon-limiting embodiments, the MTP may be configured for establishingconnectors with various ecosystems to deliver a dynamic user experienceand diverse set of services to the end user that may be accessedirrespective of time and geographical location.

The MTP may be deployed for customers from various countries and may betailored to specific country requirements. For example, the MTP may beused in The United States of America (USA), Japan, China, India,Singapore, Mexico, and Bolivia, for a variety of mCommerce and mPaymentsservices. In exemplary and non-limiting embodiments, the MTP may beconfigured for providing banking services, ticketing services, andpayment services.

In exemplary and non-limiting embodiments, the MTP may be deployed in acloud and may be configured to aggregate various disparate serviceproviders, to effectively provide end users with a suite of personalizedsecure transactional services. In an example, the network providers maydeploy the enabling layer of the MTP (for example, the wallet and thetransaction management along with infrastructure components), which maybe agnostic to the services and channels. The enabling layer of the MTPmay be configured to support an ecosystem of service providers forexample, banks, merchants, healthcare providers, and the like. Theenabling layer of the MTP may be configured to support all third partydevelopers that may use the SDK to build their individual personalizedapplications for example, secure transaction applications.

FIG. 2 illustrates a MTP high level structure 200. A MTP 212 may be aclient server platform. The client may operate on various mobilehandsets and the server may operate in the service provider's “cloud”.The client and the server may follow the high level architecture asshown in FIG. 1. The high level architecture may have three distinctcomponents that may be required to build out an ecosystem. The distinctcomponents may include a mobile enabling tier, a service tier and asoftware development kit (SDK). Each of the distinct components mayinteract with the client and the server. In exemplary and non-limitingembodiments, the mobile enabling tier may include infrastructure orbusiness independent components that may be necessary to develop mobileapplications. In exemplary and non-limiting embodiments, the servicetier may include a collection of reference service implementations forwallet ecosystems and value added services. In exemplary andnon-limiting embodiments, the SDK may include a set of tools and APIsthat may be necessary to develop the wallet and the widget services(described in this document) and build a comprehensive ecosystem.

In exemplary and non-limiting embodiments, the mobile enabling tier mayinclude different components for the client and for the server. Forexample, the mobile enabling tier for the client may includeinfrastructure runtime container software (SW) built using the mobilephone's specific development environment. In an example, the mobileenabling tier may provide the client a common abstraction to underlyingphone capabilities with common Developer APIs, UI Interpretation andrendering engine, business execution environment, widget and walletlifecycle management, Patterns for OTA/proximity transactions, etc. Inan example, the mobile enabling tier may provide the serverinfrastructure software deployed in network provider's domain that maybe configured for establishing and managing a secure mobiletransactional ecosystem. In an example, the mobile enabling tier mayprovide the server with software equipped for wallet management,stateful transaction engine, object lifecycle management, channelspecific communication, multi-domain security policy and riskmanagement, OTA provisioning, and the like.

In exemplary and non-limiting embodiments, the service tier may includedifferent components for the client and for the server. In an example,the service tier for the client may include a library of common platformservices that may be used to implement a plurality of business usecases. The common platform services may run within the businessexecution environment provided by the enabling tier. In an example, theservice tier may include three basic units. A first unit may be a usecase, for example, a client side workflows and templates built for thevarious transaction services. A second unit may be an instrument, forexample, a corresponding single wallet instrument that may facilitatemapping to real world instruments. In an example, the instrument mayprovide data for a visual or a display. In an example, the instrumentmay provide data for an over-the-air (OTA) transaction. In an example,the instrument may provide data for a proximity transaction. In anexample, the instrument may provide data for an administration. A thirdunit may include at least one trust model. The trust model mayfacilitate implementation for authentication schemes, which may includea tow factor authentication (2FA). The 2FA may be required by differentwidget providers and may be relevant for the ecosystem.

In an example, the service tier for the server may include a library ofbusiness specific components and associated service templates that maybe partially or entirely reused to develop a customer centric offering.In an example, the services may include wallet services 202 and valueadded services 204. The wallet services 202 may include managing thelifecycle of the wallet and payment tokens. The value added services mayinclude providing business services. The service tier may include threeunits. A first unit may be a use case, for example, the server sidetemplate may be built using the mobile enabling tier's transactionalframework for implementing a specific use case. In an example, there maybe one or more varying templates for a business service (example, billpayment, movie ticketing, and the like). A second unit may include atleast one instrument or token. The instruments may include businessspecific data objects (for example, credit card, bank account, bill,coupons, etc.) that may be reused across various services and mayprovide a commonly understood definition for the object andimplementation for the rules governing the object's lifecycle andtransaction. A third component may include at least one trust model. Thetrust model may facilitate implementation for different authenticationschemes for the services, including support to operate within individualtrust clusters with their independent TSMs.

In exemplary and non-limiting embodiments, the SDK may include differentcomponents for the client and for the server. In an example, the SDK forthe client may be divided into 2 parts. A first part may be a wallet SDK208 and a second part may be a widget SDK 210. In an example, the walletSDK 208 may provide access to the wallet services 202, privileged APIs,and the necessary components to build the wallet container applicationor user experience. In an example, the widget SDK 210 may facilitate theecosystem partners to build their widgets that may operate within thewallet container. In exemplary and non-limiting embodiments, the SDK mayessentially facilitate client side configuration and user experience. Inan example, the SDK may facilitate configuration by facilitatingcustomizability for parameters exposed by the client container. This mayinclude device specific parameters, variables (like PIN size, exitconfirmation, selecting inclusion of modules, etc.). In an example, theSDK may provide user experience by facilitating the development ofdifferentiating user experiences across handsets.

In an example, the SDK for the server may include at least one librarythat may allow any ecosystem server to communicate with the wallet,format content for the widgets, and expose services to the walletapplication. The library may include a configuration module and aninterface module. The configuration module may allow customizability forparameters exposed by the server's mobile enabling and service tier. Theparameters may be configured in property files and resource bundles. Theinterface module may provide connectors developed to facilitatecommunication with various backend systems that may collaborate tofulfill the complete end to end service. The interface module may alsoinclude web services exposed by the platform to integrate peripheralsystems like customer care, user portals, and the like.

SDK vision—In an example, the SDK may refer to a collective set of toolsand the underlying platform's APIs, utilities, patterns, interfaces, XMLdefinitions, abstractions, and the like that may be used and/or followedto facilitate creation of a mobile client application or widget thatruns within the MTP 212. The SDK's may facilitate development of theapplication without requiring in depth knowledge of the MTP orunderlying phone environments. In an example, the complexities ofsecure, reliable mobile transactions may be designed so as to be “hiddenunder the hood” of the mobile enabling tier.

The SDK may support an open tool driven development for third partypartners and sound illusion (SI) teams. The SDK may empower developersto independently build and distribute their own personalized securetransaction widgets based on the guidelines issued by the walletmanagement/enabling layer provider (typically a network provider). TheSDK may open up various layers (essentially top to bottom). The SDK mayprovide access to the platform's lateral capabilities with respect tosupporting multiple handset OS, robust messaging and communications,security and authentication, and NFC based secure proximity transactionsfor payment as well as non-payment services. The SDK may simplifydevelopment of the wallet and the widget. In an example, the MTP mayalso have a provision for building native wallets directly to leverageunderlying functionality that may not yet be exposed through the SDK.This may give a developer the best of both the SDK and the MTP withenough flexibility to build an improved user experience.

FIG. 3 illustrates a detailed architecture of an MTP server 300. The MTPserver may be an enabling infrastructure for building a wallet ecosystemthat may support mCommerce (for example by OTA) and mPayment (forexample by NFC Proximity) transactional services. The server may providea front end gateway thereby extending the services offered by theecosystem partners or service providers 324 (for example, the merchants,the banks, and the carriers) to a plurality of mobile handsets 328through the mobile wallet application. In an exemplary and non-limitingembodiment, the server may include a set of components that maycollaborate to provide wallet management, transaction management, andecosystem integration. The server may be developed in Java and maysupport various application servers and databases. In an example, theserver may be a container for the services being offered by the MTP. Inan example, the server may be hosted in a secure DMZ (demilitarizedzone) in a clustered setup for mission critical applications withconnectivity to the ecosystem cloud.

As illustrated in FIG. 3, the MTP architecture may include serverinfrastructure components, service templates and referenceimplementations, NFC infrastructure components, and host integrationframework.

In an example, the MTP server may include a plurality of channels 302, acommunication module 304, an OTA component 308, a wallet managementmodule 310, a transaction engine 312, a notification and service bus314, an instruction management module 318, at least one value addedservices (VAS) module 320, NFC infrastructure 322, and a hostintegration framework. In an example, the channels 302 may provide achannel specific adaptation for requests to be received through multiplechannels such as Mobile Data, SMS, USSD, and the like. In an example,the communication module 304 may provide the framework for supportingsecure mobile client server interactions. The communication module 304may facilitate the communication, authentication, authorization, and thelike from the individual business components. The flexible architecturemay facilitate a service developer to extend the security or introducenew requirements by adding additional layers. In an example, the OTAcomponent 308 may provide a support that may be required forfacilitating OTA delivery of applications, widgets, and personalizedtokens that may be used during transactions. In an example, the OTAprovisioning may include devices discovery and ensuring the appropriateversion may be delivered to the device. In an example, the walletmanagement 310 module may provide the implementation for the walletstate management, lifecycle services, version management, wallethistory, etc. The payment services, for example, provisioning of softcards and personalizing applets, may also be included as a part ofwallet management. In an example, the transaction engine 312 may providethe framework for developing OTA transactional services. Thetransactional service implementation may be developed by following thetemplates provided by the transaction framework. The requirements ofreliability, security, logging, etc. may be transparently managed by thetransaction framework. The transaction framework may provide acentralized access to interfaces with internal virtual accounts andexternal payment gateways. In an example, the notification and messagebus 314 may provide an object exchange bus with the client application.In an example, the notification and message bus 314 may include supportfor pushing alerts and message to the wallet. In an example, aninstrument management module 318, there may be several components whichmay provide various wallet instruments (for example, credit cards,bills, tickets, etc.) and manage various lifecycle services andconfigurations associated with these instruments within the platform. Inan example, at least one of the VAS modules 320 may include a library ofservice templates and implementations for common business services thatmay have been built and deployed using the MTP platform. In an example,the NFC infrastructure 322 components a set of components that mayintegrate with the NFC ecosystem hosts for orchestrating the issuanceand personalization of soft card and applets. The integration maysupport be required for enabling global platform compliant NFCtransactional services from the ecosystem. In an example, the hostintegration framework may a layer including various connectors that maybe plugged into the server to communicate with the back-end systems forfacilitating the transactional services. The host integration frameworkmay include a series of interface definitions which may have to beimplemented by the service developer in the form of connectors tocommunicate with external host systems.

In various exemplary and non-limiting embodiments of the presentinvention, the primary responsibilities of the MTP server may includeproviding wallet management for the community of wallet users. In anexample, the wallet management may include wallet lifecycle services,payment, widget management, and the like. In various exemplary andnon-limiting embodiments of the present invention, the primaryresponsibilities of the MTP server may include establishing a serviceecosystem and orchestrate transactions from the wallet application withthe ecosystem service providers in a secure and reliable manner. Invarious exemplary and non-limiting embodiments of the present invention,the primary responsibilities of the MTP server may include supporting athird party developer community in building and distributingtransactional widgets and manage the widget discovery and delivery. Invarious exemplary and non-limiting embodiments of the present invention,the primary responsibilities of the MTP server may include providingdefined patterns and templates for implementing mobile financialtransactions that hide the complexity of security, reliability, etc.from the service developer.

FIG. 4 illustrates a high level architectural view of the Walletapplication with a MTP mClient runtime 400. For the purpose of thisfigure a wallet 404 and widget 408 a and 408 b may be similar as modulesdescribed above but differ in functionality and responsibilities. Invarious exemplary and non-limiting embodiments of the present inventionthe MTP mClient 402 may be an enabling infrastructure for rapid mobileapplication development. The mClient may provide a container basedapproach to supporting multi-tenant application architecture. In anexample, the mClient container may be a phone specific runtimeenvironment for the wallet 404 and the widgets 408 a and 408 b that maybe developed using the MTP SDK. The mClient container may facilitateapplication execution, transactional security, reliability, devicespecific implementations, and the like thereby allowing the developer tofocus more on a service's unique functions. The mClient container may bebuilt on top of the device specific APIs and available for populardevice environments for example, phone APIs 444. The mClient runtime maygenerate a native application screen from the widget descriptors. Thescreen may ensure that a button on the screen may appear like a nativeAndroid®, Blackberry®, or iPhone® button on the respective devices. ThemClient server may include at least one phone independent API 410. Thephone independent API 410 may ensure that widgets 408 a and 408 bdeveloped using the SDK run across all supported handsets. The phoneindependent APIs 410 may be specifically designed to provide all thesupport that a developer may need to create an improved user experience.The mClient server 402 may be configured so as to facilitate the nativeimplementation within the underlying phone O/S as it may be abstractedaway through the runtime and API. In an example, the wallet applicationmay be like a widget as the wallet application may be interpreted andexecuted by the mClient runtime 402. In an example, the wallet 404 mayhave a privileged control over the mobile application. The wallet 404may also define additional APIs for the widget developers that may bespecific to the application's context (for example, related to financialsector, retail sector, healthcare sector, government).

In various exemplary and non-limiting embodiments of the presentinvention, the mClient runtime may have components that may wrap all themajor phone platform developer APIs. In an example, the UI framework andthe workflow engine may render the user interface and handle the eventbased execution of local business functions.

In various exemplary and non-limiting embodiments of the presentinvention, the mClient runtime may include following components. ThemClient runtime may include an UI framework 412. In an example, the UIframework 412 may provide the necessary infrastructure to render theuser interface. In an example, the UI framework 412 may include a UIengine 414, a UI screen & layouts 418, a set of styles 420, and aplurality of UI elements 422. The UI framework 412 may be configured tomanage the diversity of handsets and screen capabilities. In an example,the UI engine 414 may manage the generation and display of screens 418based on the screen configuration provided in the application XML. ThemClient runtime 402 may include an action framework 424. The actionframework 424 may provide the necessary support to execute businessspecific logic (actions). The action framework 424 may be in the form ofcustom JavaScripts or pre-existing platform services. The actionframework may include a script engine 428. The script engine 428 maycontrol the execution of the action and interaction with the userinterface. The mClient runtime 402 may include a widget managementcomponent 430. The widget management component 430 may facilitatemanaging the widget lifecycle services 432 such as installation,loading, unloading, removal, update, etc. The widget managementcomponent may include an access controller 434 to manage access controlto only permit widgets to access resources for which they havepermissions in their widget descriptor. The mClient runtime 402 mayinclude a communication component 438. The communication component 438may be configured for providing the basic communication services betweenthe client and server applications. The communication component 438 mayprovide communications support for HTTP (& HTTPS) and SMS channels. Inan example, the communication component 438 may include packetconstruction, encoding/decoding and basic HTTP error handling. In anexample, the communication component 438 may support attachments to thecommunication packet for non-essential business objects like alerts andadvertisements. The mClient runtime 402 may include a database component440. The database 440 may provide services to store, update, remove andfind data from a local database. In an example, the database 440 mayprovide APIs which, may not available from the native phone platform.The mClient runtime 402 may include a security component 442. Thesecurity components 442 may provide crypto APIs for encryption,decryption, hash based message authentication code (HMAC), secure randomhashing, and the like. The mClient runtime may include a NFC component.The NFC 448 may implement the global platform compliant NFC services andprovides APIs for interact with the applets on the phone's secureelement. The NFC 448 may contain APIs for NFC tags and peer-to-peer(P2P) mode. The mClient runtime may include a phone component. The phonemay provide platform services to interact with the phone components likecalling, SMS, LED, vibrate command, calendar function, contactmanagement, and the like. The mClient runtime may include the widgets408 a and 408 b. The widget may be a service bundle that may encapsulatethe screens, content, resources, JavaScript, and styles for a collectionof business services. The widgets may be built using the MTP SDK whichmay includes a set of tools that operate on a pre-defined set of XMLfiles

In various exemplary and non-limiting embodiments of the presentinvention, the mClient may be a container within which widgets may beinstalled and run. In various exemplary and non-limiting embodiments ofthe present invention, mClient may simplify development of end to endvisual workflows for the entire mobile application. In various exemplaryand non-limiting embodiments of the present invention, the mClient mayprovide a set of well tested, standardized APIs and platform servicesfor application developers to quickly use to build their applicationsacross mobile handset platforms without a risk of device fragmentationissues. In various exemplary and non-limiting embodiments of the presentinvention, the mClient may generate an improved user interface that mayutilize the native smart phone capabilities, but may still be responsiveon limited capability devices. In various exemplary and non-limitingembodiments of the present invention, the mClient may provide definedpatterns for implementing mobile financial transactions that may beconfigured so that to have complexity of security, reliability, and thelike as a backend operation.

FIG. 5 illustrates an overview of a widget development process withreference to a development cycle.

In exemplary and non-limiting embodiments, the MTP SDK may be configuredfor facilitating the overall widget development 500 and provide agreater degree of flexibility and independence to the widget developers.A first stage in widget development may be a design stage 502. In anexample, a developer may create the mobile application using a Microsoftoffice Visio® or a similar tool & any XML and JavaScript editor. Furtherto development, a widget or widget file 504 may be packaged. In anexample, the developer may use an eclipse plug-in to package the widgetworkspace and create a widget package. The widget package may be sent toan automated build server for widget generation 508. The widget files504 may not be in a form of a widget binary 514. In an example, theautomated build server may generate an application binary consisting ofthe mClient runtime as well as the widget package. Further to packaging,a widget may be tested using a test container 510. In an example, thedeveloper may utilize any off-the-shelf device simulator to verifywidget flows and script execution. Further to testing, the widget may bepublished to a MTP server 512. In an example, the wallet users may beable to discover widgets and download them from the MTP server 512.

In exemplary and non-limiting embodiments, a plurality of tools may beused for widget development, for example, the MTP-SDK, the MTP visioadd-on, and the MTP eclipse plug-in.

In an example, the MTP SDKs for the server side and the client sidedevelopment. The client side SDK (also referred to as mClient SDK) maybe essential for developing any mClient Widget. The server SDK mayprovide a set of useful protocols and contracts that may facilitate thedevelopers to build on MTP's proven enabling frameworks. In an example,independent web services for the widgets may also be developed, withoutusing the MTP Server.

In exemplary and non-limiting embodiments, the MTP mClient SDK mayconsists of a set of APIs to access various native phone platformservices like database, contactless, communication, and the like. TheAPIs may be provided as JavaScript functions and may be utilized by thewidget developers. In exemplary and non-limiting embodiments the MTPserver SDK may consists of useful libraries and contracts which mayenable rapid integration with mClient widget's utilizing MTP'sunderlying implementation for communication, security, reliability,failover, and the like.

In an example, Development of elements of an MTP, such as with a SDK,may be supported by a visualization development capability (e.g.Microsoft Visio®) that facilitates developers defining user interfaceworkflows by performing drag-n-drop actions with MTP templates,stencils, and the like. The MTP add-on may facilitate export of theworkflow into an MTP, phone independent, XML format (for example, MTPapplication descriptors).

In exemplary and non-limiting embodiments, the MTP eclipse plug-in, theMTP SDK may be supported by an Eclipse plug-in that may be used togenerate the wallet application or widgets from the applicationdescriptors. The MTP eclipse plug-in may provide a single click buildoption for all the supported device platforms.

A mobile transaction platform may include reference implementations forelements such as containers, wallets, widgets, and for applications suchas finance, retail, health, government, and the like. The features andfunctions of a mobile transaction platform may be delivered throughmultiple deployment models, which may include the use of a native clientapplication (e.g. a container or mClient) that may be supported by MTPtools that providers can use to develop client functions such aswallets, widgets, companion applets, couponing applets, and the like.Similarly, the MTP may facilitate deployment of web-services (that maybe provided and/or customized for each provider) that may facilitateexposing different features of the MTP, and the like. An MTP, such as amulti-tiered secure mobile transactions enabling platform describedherein, may include tools that can be used to develop wallets, widgets,companion applets, etc. These tools and methods for configuring anddelivering wallets, widgets, and the like may also be configured with awizard-like utility to expedite ecosystem development. Additional MTPtools can be configured to monitor usage and transactional information,and further offer up intelligent options and solutions for optimizationbased on various capability and performance criteria, etc.

A multi-tiered secure mobile transactions enabling platform may satisfyenterprise service delivery environment expectations and demands withthe necessary support for scalability, redundancy, inter-operability,service delivery, message definitions, and the like. The platform may bedelivered either through a hosted model for service/issue/acquisitionproviders and/or through a managed service model. The MTP facilitatesimplementing rules (e.g. business, transaction, trust, and the like)across an ecosystem as described herein, which can govern variousecosystem operations including on-boarding of participants into theecosystem, how the participants access and consume the various servicesthrough the ecosystem, how a participant may be removed from theecosystem, how different participants within the ecosystem may cooperatewith each other, how different participants may cooperate with entitiesoutside of the ecosystem, how participants acquire customers, howparticipants will support customers, how participants may capture datarelated to users and transactions (static and dynamic), how participantswill use such data, share such data, and monetize such data—within theecosystem as well as outside, among other things.

A MTP may be associated with an expert engine for providing customersupport to consumers as well as providers/participants in the ecosystem.The expert engine may be leveraged to deliver a simplified userexperience to consumers as well as providers/participants through themethods and systems described herein. An MTP may be architected withseveral tiers or facets as described herein and labeled for the sake ofdescription as enabling, service, personalization and the like, witheach tier potentially further divided into other tiers, such as logicaland physical tiers or aspects. Such a multi-tiered architecture orplatform may uniquely help deliver the services and functionality in amulti-domain (and optionally multi-tenant) ecosystem as described hereinwhile ensuring independent ownership among service providers andsupporting evolution of differentiated capabilities, especially in amulti-domain ecosystem environment.

An MTP may be delivered through containers that may facilitateecosystem-wide capabilities, wallets that may facilitate differentiatedinstrument implementation related capabilities and features, (e.g. NFC,NFC with Secure Element (SE), tokenization, tokenization exposed throughQR Code/BarCode and the like), and widgets that may facilitatedifferentiated capabilities and features that providers can directlyexpose out to the end-user without disintermediation within theecosystem.

A MTP, such as the multi-tiered secure mobile transactions enablingplatform described herein, may ensure aggregation of different front-endprotocols across an ecosystem, such as a multi-domain ecosystemdescribed herein, based on back-end requirements of the ecosystemparticipants, rules and the like. Aggregation of different front-endprotocols may be optimized further by providing an abstraction orwrapper capability, and/or a tokenization of the wrapper capability.

A MTP may enable an ecosystem to progressively deliver protocol levelfunctionality into the front-end, through the methods and systemsdescribed herein over an enterprise service delivery environment.Protocol level functionality delivery may further be enhanced byproviding tokenization of the wrapper or aggregation capabilitydescribed herein, or by use of ecosystem rules.

A MTP may be set up in a network provider's domain and portions thereofintegrated into their systems. The MTP may additionally be connected toan ecosystem of service and security providers, including one or moreTrusted Service Managers (TSMs). A network provider may use the MTP tocreate a branded mobile application targeting a specific businessvertical. Such a branded mobile application may be a wallet for, forexample, a retail/financial domain or, for example, a wallet for thehealthcare vertical. Such a wallet application may provide a core set ofservices to a user specific to the domain for which it is created. Inaddition to providing core domain services, wallets may also handleapplication lifecycle and security, standardized user experience andwidget management responsibilities. Widgets may provide specificbusiness services and comply with the wallet guidelines.

FIG. 6 depicts an overview of an ecosystem for secure personalizedtransactions as described herein. The ecosystem 600 may include aplurality of participants such as a user of a client device 602, issuersof instruments 610, acquirers of transaction instruments 620, serviceproviders or merchants 608, and a variety of an infrastructure elementsincluding transaction and processing resources 604 that may include amobile transaction platform (MTP) 622, rules, interfaces to tools andparticipants that maybe embodied as one or more enterprise servicebusses (ESB), point of sale facilities 612, secure point of saleswitching functionality 618, functionality for abstracting transactionprotocols 614, and the like. The client device 602 may include aplurality of containers that may include a plurality of wallets, walletcompanion applets, and a plurality of widgets for performing atransaction (e.g., payment transaction) for the one or moreservices/products that may be offered by a service provider, such asservice provider 608.

The MTP 622 depicted in FIG. 6 may be set up in a network provider'sdomain and integrated into the network provider's systems (optionallythrough their ESB). As shown, the MTP may be configured to be connectedwithin the ecosystem 600 of service providers. Individual, independentservice providers or merchants 608 may use the MTP software developmentkit and environment to build widgets that can be loaded into a wallet ora wallet container accessible on the client device 602. These widgetsmay provide incremental functionality that may enhance the overallappeal of the wallet application. Further, the MTP infrastructure 604may include rules such as to provide wallet, widget, and transactionmanagement along with all the relevant business services that areassociated with delivering wallets to a universe of diverse mobileenvironments. Further, the MTP may establish connections with variousecosystems to deliver a dynamic user experience and diverse set ofservices to an end user that can be accessed anytime, anywhere.

The ecosystem 600 may further include a plurality of issuers oftransaction instruments 610. The issuer 610 may provide varioustransaction instruments such as a virtual credit card, a gift card, aloyalty card, tickets and the like. The user of the client 602 mayselect these instruments using one or more wallets and widgets toperform a transaction. In an example, the plurality of issuers 610 mayuse tools provided in association with the MTP 622 to develop customizedwidgets to enhance the user experience, provide security, comply withissuer workflows, and the like. Further, the ecosystem 600 may includedigital wallets (e.g. that may be installed on a mobile client 602) thatmay include functionality for storing these instruments, performing atransaction for these instruments, and the like.

The ecosystem 600 may further be characterized by capabilities andfeatures such as three-dimensional security for personalizedtransactions (e.g. device, domain, and user), multiple functionalitytiers (e.g., an architecture with personalization, service, enablingtier, expert, and experience framework tiers or layers), support formultiple independent containers on a client device 602, multipledistinct widgets within a container, multiple distinct and independentwallets within a container, single widget access to multiple wallets,single wallet access by multiple widgets, support for a plurality oftrust models, and the like. The ecosystem 600 may further include apoint of sale facility or functionality 612 that may be configured toperform real (e.g. proximity-based) and/or virtual (e.g. on-line)transactions. The ecosystem 600 may include a protocol abstractioncomponent 614 that may include a wrapper such as to perform transactionsacross the multiple types of protocols between the client 602 and thepoint of sale facility 612, and the like. For example, the protocolabstraction component 614 may enable a client device 602 perform atransaction independent of the protocol by which the point of saledevice 612 or the aggregator switch 618 operates.

The ecosystem 600 may further include a plurality of acquirers 620. Eachof the acquirers 620 may be use tools provided in association with theMTP 622 for developing customized widgets, wallets, and the like. In anexample, the ecosystem 600 may include a switch 618 for selecting theacquirer 608 from the plurality of acquirers for performing atransaction.

As depicted in FIG. 6, issuers 610, service providers 608, acquirers620, and the like may have access to or may configure their portions ofthe ecosystem for secure personalized transaction with only portions ofthe ecosystem 600 functionality. In an example, acquirer 620A includeswallet functionality, whereas acquirer 620 n includes widgetfunctionality. Likewise, issuer 610 a includes wallet and widgetfunctionality, whereas issuer 610 n only includes widgets. Similarly,service provider 608 a includes widgets, wallets, and containers,whereas service provider 608 n includes only widgets and wallets.

FIG. 7 depicts an exemplary client architecture 700 for use in anecosystem for secure personalized transactions. The client architecture700 may include a container based approach such as to support amulti-tenant application architecture. The client architecture 700 maybe configured into business specific services, wallet functionality,enabling infrastructure, and the like that may be supported by deviceindependent APIs, device-specific operating system environment(s), andthe like. Wallet functionality may be container-based to providefunctionality including business rules adherence, wallet and widgetapplication lifecycle management, user experience management, and mayfurther include one or more containers 714 that may include one or morewallets 702. Business specific services may be provided by one or morewidgets such as a widget 704 a, a widget 704 b, a widget 704 c . . . ,and a widget 704 n (collectively referred to herein as a widget 704).Enabling infrastructure may be facilitated by device agnostic APIs and aservice execution environment in a client runtime environment 708.

Further, the client architecture 700 may include a mClient runtimecontainer 708 that may a phone specific run-time environment for thewallet 702 and the widget 704 that are developed using the MTP SoftwareDevelopment Kit (SDK). This container may handle complexity related toapplication execution, transactional security, reliability, etc.thereby, this may allow the developer to focus more on an service'sunique functions and not worry about most of the complexity, includingdevice specific implementations. The mClient container 708 may be builton top of the device specific APIs and available for popular deviceoperating system environments 710. The runtime container 708 maygenerate a native application screen from descriptors associated withwidgets 704. This ensures that a button looks like a native ANDROID,BLACKBERRYOS, or IPHONEOS button on the respective devices.

The client architecture 700 may further include a device independent APIlayer 710 that may ensure that widgets developed using the SDK may runacross all supported handsets. These APIs are specifically designed toprovide all the support that a developer needs to create rich userexperiences. However, the developer may not need to worry about thenative implementation within the underlying phone O/S since this isabstracted away through the client runtime container 708 and the APIlayer 712. The wallet 702 may be executed like a widget in that it maybe interpreted and executed by the client runtime 708. However, thewallet 702 may have privileged control over the application. The wallet702 may also define additional APIs for the widget developers that maybe specific to the application's context (financial, retail, healthcare,government, etc.).

FIG. 8 depicts an ecosystem for secure personalized transactionsincluding an MTP structural configuration with a protocol abstractionsupport capability. The system 800 may include a mobile device 802, aMTP server 804 and a plurality of service providers such as a serviceprovider 808 a, a service provider 808 b, a service provider 808 c, anda service provider 808 n communicatively coupled to a network 810. Themobile device 802 may include a plurality of containers such as acontainer 812 a and a container 812 n. Each of the containers mayinclude a plurality of wallets such as a wallet 814 a and a wallet 814 n(collectively referred herein to as a wallet 814). Each of thecontainers may include a plurality of widgets such as a widget 818 a anda widget 818 n (collectively referred herein to as a widget 818).

Different service providers may leverage different features of a mobiletransaction platform and/or wallet service center (WSC) as describedherein. For example, the service provider 808 a may access a walletservice center toolkit capability of the MTP, the service provider 808 bmay access a wallet service center plug-in capability, the serviceprovider 808 c may access a wallet service center web portal service,and the service provider 808 n may provide a package of services that donot require any dedicated WSC or MTP resident software. The variousservice providers or merchants may access the WSC developmentenvironment and WSC run time through the network 810. For example, theservice provider 808 n may not be required to run the toolkit and maydirectly access the WSC toolkit as available on the MTP server 804.Similarly, the MTP server 804 may provide access to a library to thevarious service providers, wherein the library may include codecs forencoding/decoding, authentication/security schemes and the like. Notevery service provider is required to run a WSC library.

In an example, the MTP server 804 may be configured to provide adevelopment environment as well as a runtime environment to theplurality of the service providers. At any instant, a service providermay either have the plug-ins, libraries or may access these componentsdirectly from the MTP server 804. As a result, this system allows theservice providers or merchants to customize the configuration as per thedesired requirements. Alternatively, the MTP server 804 may connectdirectly with a client device, such as the mobile device 802 to performtransactions, such as on behalf of a service provider (e.g. PL808 n).

The ecosystem may include acquisition functionality, such as throughvarious point-of-sale (PoS) terminals and over the air transactions.Protocol abstraction associated with transaction acquisition mayoptionally be facilitated by an acquisition module 824 that mayincorporate MTP and/or WSC acquisition functionality 822 that may addmore functionality to the system such as to make the transaction morereliable, robust and secure. A PoS terminal 820 may communicate with themobile device 802 through one or more proximity communication channelsincluding but not limited to NFC, Bluetooth, barcode reader and the likevia any of a variety of acquisition protocols. Protocol abstraction maybe handled via wrapping such communication between the mobile device 802and the PoS terminal 820. In an example, the wrapper may be implementedfor abstracting a protocol that embodies a transaction between a wallet824 and the PoS terminal 820. For over the air transactions (e.g. thatdo not directly use a PoS terminal 820), protocol abstraction can besimilarly generated via wrappers, tokens, tokenized wrappers, and thelike that may be used to exchange information over a public network 810(e.g. the Internet) to effect a transaction.

FIG. 9 depicts an alternate configuration of an ecosystem for securepersonalized transactions as depicted in FIG. 8 without the use of anacquisition facility (e.g. 824 in FIG. 8).

The methods and systems described herein of multi-domain ecosystemsecure personalized transactions includes a system such as a platformfor secure personalized transactions in a multi-domain ecosystem. Theplatform may include a personalization tier for enabling serviceprovider personalization of one or more ecosystem elements stored on amobile device. The one or more ecosystem elements may be selected fromthe group consisting of widgets, wallets, and applets. The platform mayfurther include an enabling tier for facilitating interoperation betweenthe personalization tier and a client device. The platform may furtherinclude a service tier operating independently of the enabling tier toenable service delivery for a plurality of services. In an example, theplurality of services may be selected from a group consisting ofbanking, ticketing and bill payment. The platform may be operable in adistributed network of ecosystem participants. The ecosystemparticipants may include such as service providers, instrument issuers,instrument acquirers, and mobile device users. The platform may furtherinclude a plurality of functional modules. The functional modules mayinclude one or more module for such as communication, notification,security, authentication, over the air operation, and device runtimecontainer to manage wallets and widgets. The platform may furtherinclude a software development environment that may include such asreference implementations of containers, wallets, and widgets. Thesoftware development environment may further include such as referenceimplementations of finance, retail, health, and government domains. Inan example, the platform may be deployed through the use of a nativeclient application. In an example, the platform may be deployed throughthe use of a native client application and a set of software developmenttools. The set of software development tools may be used to developclient functions. The set of client functions may be selected from thegroup of wallets, widgets, companion applets, and couponing applets. Inan example, the platform may be deployed through the use of a nativeclient application and a set of web services that may be exposed by theplatform to integrate peripheral systems. The peripheral systems mayinclude such as customer care and user portals. In an example, theplatform may be deployed with tools that may be used to such as developwallets, widgets, and companion applications. The tools may include awizard-like utility. In an example, the tools may be used to monitorusage and transaction information. In an example, the tools may be usedto provide intelligent optimization options and solutions. Theoptimizations solutions may be based on monitored capability andperformance criteria. In an example, the platform may be deployed withthe necessary support in an enterprise service delivery environment. Thenecessary support may include such as support for scalability,redundancy, inter-operability, service delivery, and messagedefinitions. In an example, the platform may be deployed through ahosted model for a plurality of providers. The plurality of providersmay be selected from the group including such as service, issue, andacquisition providers. In an example, the platform may be delivered byimplementing rules which may govern the use of services by the ecosystemparticipants. In an example, the rules may govern the access of theservices by the participants. In an example, the rules may govern theconsumption of the services by the participants. In an example, therules may govern how a participant may be removed from the ecosystem. Inan example, the rules may govern how participants may cooperate witheach other within the ecosystem. In an example, the rules may govern howparticipants may cooperate with entities outside of the ecosystem. In anexample, the rules may govern how participants may acquire customers. Inan example, the rules may govern how participants may support customers.In an example, the rules may govern how participants may capture datarelated to users and transactions. In an example, the users andtransactions may be static. In an example, the users and transactionsmay be dynamic. In an example, the rules may govern how participants mayuse the captured data within the ecosystem. In an example, the rules maygovern how participants may use the captured data outside of theecosystem. In an example, the rules may govern how participants mayshare the captured data within the ecosystem. In an example, the rulesmay govern how participants may share the captured data outside of theecosystem. In an example, the rules may govern how participants maymonetize the captured data within the ecosystem. In an example, therules may govern how participants may monetize the captured data outsideof the ecosystem. In an example, the platform may be delivered byleveraging an expert engine to provide customer support to participantssuch that the participants may be selected from a group of consumers andproviders. In an example, the platform may be delivered by leveraging anexpert engine to provide a simplified user experience to participantssuch that the participants may be selected from a group of consumers andproviders. In an example, the platform may be architected using multipletiers. The multiple tiers may be selected from the group including suchas an enabling tier, a service tier, and a personalization tier. Eachtier may further be divided into additional tiers. The additional tiersmay be selected from the group including such as logical tiers andphysical tiers

A multi-domain ecosystem platform for secure personalized transactionsmay comprise a personalization tier for service provider personalizationof ecosystem elements, an enabling tier for facilitating interoperationwith client device software and hardware that operates independently ofa service tier that facilitates service delivery for a variety ofservices such as banking, ticketing, bill payment, and the like. Such amulti-domain ecosystem platform may facilitate generic and specializedtransactions, including secure personalized transactions, may belogically and/or physically segmented into multiple functionallyindependent blocks, segments, units, layers or tiers such that theyoperate separately, in conjunction through interfaces using exchange ofdata or information, or seamlessly with each other in a predefined orconfigurable order to fulfill a larger function or unit of transactionor a complete transaction. As an example, the multi-tieredecosystem-enabling platform as described herein may be comprised ofthree tiers, namely, the personalization tier, service tier and theenabling tier.

Further, as an example, the personalization tier may be used to effectspecific branding elements (such as trademarks, logos, themes, colors orthe like), user interaction elements, workflows (e.g., stored accountand transaction data to enable efficient completion of repeatedtransactions, shopping carts, single-click transactions and manyothers), user interface effects (e.g., transitions, content formats,dynamics or any other action), cause and/or effect that may be requiredby a service provider for a specific requirement. A personalizationlayer may facilitate the deployment of a service provider's corporatedesign or interaction philosophy as well as giving room to consumers toadjust to their personal needs and preferences, including for thevisually impaired, and the like.

The enabling tier may facilitate interaction with the underlying layers,platform or substrate which may be in the form of software or hardwareor a combination of both to communicate and interact therewith. Theenabling tier may or may not serve as an abstraction effectivelyisolating the layers or tiers above it from those that are below theenabling layer.

The service tier may cater to the specific requirements such as workflows, business logic, rules, intelligence, and needs of a servicevertical which includes service vertical such as, but not limited to,banking, ticketing, bill payment, couponing, loyalty and point cardprograms, parking, and other ecosystem services.

Services enabled by such a service tier may include mobile banking,money transfer, bill payments, ticketing, couponing, loyalty programs,marketing and advertising related services, education related services,city services, mobile health services, mobile insurance, transitservices such as parking coupons, travel services, emergency or 911services, retail payments, logistics support services, businessintelligence solutions, branding, shopping, product authenticationservices, regulatory services, records management, interactivetelevision services, text-to-voice services, location based services andthe like

While the examples used herein illustrate the concept of multi-tieredecosystem enabling platforms, the methods and systems described hereinactually cover more generalized platform architectural and/or structuralconcepts including multiple functionally independent blocks, segments,units, layers or tiers. FIG. 10 depicts a notion of a tiered platformthat may span a range of ecosystem elements including client devices(e.g. mobile devices), wallet service center functionality, trustedsecurity managers, mobile transaction platform servers, issuers ofwallets, merchants (aka service providers), and the like. Each suchecosystem element may comprise at least enabling, service, andpersonalization tiers. As noted herein, additional tiers, such as expertengine and experience framework tiers may also be incorporated indeployments of a multi-tiered secure mobile transactionsecosystem-enabling platform.

The methods and systems described herein of multi-domain ecosystemsecure personalized transactions includes a method that includesanalyzing one or more of a set consisting of ecosystem participants,service requirements, customer requirements, regulatory requirements,transaction security requirements, trust models, and electronictransaction communication channels. The method may further includedetermining, based in the analysis, one or more ecosystem features toconfigure in a platform comprising at least one of a service tier, anenabling tier, and a personalization tier. The method may furtherinclude configuring the one or more ecosystem features in accordancewith the determination. In an embodiment, the one or more ecosystemfeatures may be configured to ensure satisfaction of each analyzedrequirement within a context of a service provider business model. Theplatform may additionally include an expert engine tier and anexperience framework tier.

Methods for selecting eco system features for inclusion in each of anenabling tier, a service tier, and a personalization tier may includeanalyzing ecosystem participants, service requirements, customerrequirements, regulatory requirements, transaction securityrequirements, trust models, and electronic transaction communicationchannels to determine ecosystem features to configure in a service tier,an enabling tier, and a personalization tier to ensure satisfaction ofeach analyzed requirement within the context of a service providerbusiness model. Features may be similarly determined for additionaltiers, such as expert engine and experience framework tiers.

A method or process of breaking down parts of the overall transaction,service or process into the multi-tiered ecosystem platform may be basedon a combination of analytics, heuristics and requirements, optionallyaided by tools including expert engines based on artificial intelligenceconcepts. Such a method or process may take into account theperspectives and requirements of all participating—present andanticipated in future—entities in the ecosystems including, but notlimited to, service providers; service requirements; customerrequirements; end-user requirements; regulatory mandates & guidelines;security mandates, guidelines and requirements; trust models; economicmodels; business logic and workflow; commonality with other services;operational factors; design & technology factors; target devices &platforms; projected technology evolution; other related & unrelatedservices; and operating constraints.

In most cases, the aspects and parameters mentioned above can result inthe service requirement to be logically segmented or partitioned intothree tiers, namely the personalization, service and enabling tiers.

Referring to FIG. 11, an embodiment of selecting ecosystem features forinclusion in each of an enabling tier, a service tier, and apersonalization tier of a multi-domain ecosystem platform for securepersonalized transactions. Based on participant business goals andrequirements, an ecosystem feature allocation engine 1102 may processrules and controls such as to allocate features of the ecosystem to theenabling tier 1104, a service tier 1108, and a personalization tier1110.

In an example, the enabling tier 1104 may include infrastructure orbusiness independent components that may be necessary to develop mobileapplications. The service tier 1108 may include a collection ofreference service implementations for wallet ecosystems and value addedservices. The personalization tier 1110 may include a set of tools andAPIs that may be necessary to develop the wallet and the widget services(described in this document) and build a comprehensive ecosystem.

In an example, the enabling tier 1104 may include features different forthe client and the server. In the enabling tier 1104, the client may beconfigured to include infrastructure runtime container software (SW)that may be built using a specific development environment associatedwith the mobile device. In an example, the enabling tier 1104 mayprovide the client a common abstraction to underlying devicecapabilities with common Developer APIs, UI Interpretation and renderingengine, business execution environment, widget and wallet lifecyclemanagement, patterns for OTA/proximity transactions, and the like. Onthe server side, the enabling tier 1104 may provide to the server aninfrastructure software that may be deployed in network provider'sdomain that may be configured for establishing and managing a securemobile transactional ecosystem. In an example, the enabling tier 1104may configure the server features such as wallet management, statefultransaction engine, object lifecycle management, channel specificcommunication, multi-domain security policy and risk management, OTAprovisioning, and the like.

In an example, the service tier 1108 may include multiple features forthe client. For example, the client may be configured to include alibrary of common platform services that may be used to implement aplurality of business use cases. The common platform services may runwithin the business execution environment provided by the enabling tier1104. In an example, the service tier 1108 may include three basicunits. A first unit may be a use case, for example, a set of client sideworkflows and templates built for the various transaction services. Asecond unit may be an instrument, for example, a corresponding singlewallet instrument that may facilitate mapping to real world instruments.In an example, the instrument may provide data for a visual or adisplay. In an example, the instrument may provide data for anover-the-air (OTA) transaction. In an example, the instrument mayprovide data for a proximity transaction. In an example, the instrumentmay provide data for an administration. A third unit may include atleast one trust model. The trust model may facilitate implementation forauthentication schemes, which may include a two factor authentication(2FA). The 2FA may be required by different widget providers and may berelevant for the ecosystem.

In an example, the service tier 1108 may include multiple features forthe server. The server may be configured to include a library ofbusiness specific components and associated service templates that maybe partially or entirely reused to develop a customer centric offering.In an example, the services may include wallet services and value addedservices. The wallet services may include managing the lifecycle of thewallet and payment tokens. The value added services may includeproviding business services. The service tier 1108 may include threeunits. A first unit may be a use case, for example, the server sidetemplate may be built using the mobile enabling tier 1104'stransactional framework for implementing a specific use case. In anexample, there may be one or more varying templates for a businessservice (e.g., bill payment, movie ticketing, and the like). A secondunit may include at least one instrument or token. The instruments mayinclude business specific data objects (for example, credit card, bankaccount, bill, coupons, etc.) that may be reused across various servicesand may provide a commonly understood definition for the object andimplementation for the rules governing the object's lifecycle andtransaction. A third component may include at least one trust model. Thetrust model may facilitate implementation for different authenticationschemes for the services, including support to operate within individualtrust clusters with their independent TSMs.

In exemplary and non-limiting embodiments, the personalization tier 1110(may also be referred to as a SDK tier) may include different featuresfor the client and for the server. In an example, features associatedwith the client in the SDK tier may be divided into 2 parts. A firstpart may be a wallet SDK and a second part may be a widget SDK. In anexample, the wallet SDK may provide access to the wallet services,privileged APIs, and the necessary components to build the walletcontainer application or user experience. In an example, the widget SDKmay facilitate the ecosystem partners to build their widgets that mayoperate within the wallet container. In exemplary and non-limitingembodiments, the SDK may essentially facilitate client sideconfiguration and user experience. In an example, the SDK may facilitateconfiguration by facilitating customizability for parameters exposed bythe client container. This may include device specific parameters,variables (like PIN size, exit confirmation, selecting inclusion ofmodules, etc.). In an example, the SDK may provide user experience byfacilitating the development of differentiating user experiences acrosshandsets.

In an example, the SDK for the server may include at least one librarythat may allow any ecosystem server to communicate with the wallet,format content for the widgets, and expose services to the walletapplication. The library may include a configuration module and aninterface module. The configuration module may allow customizability forparameters exposed by the server's mobile enabling tier 1104 and servicetier 1108. The parameters may be configured in property files andresource bundles. The interface module may provide connectors developedto facilitate communication with various backend systems that maycollaborate to fulfill the complete end to end service. The interfacemodule may also include web services exposed by the platform tointegrate peripheral systems like customer care, user portals, and thelike.

The methods and systems described herein of multi-domain ecosystemsecure personalized transactions includes a method in a platformincluding such as at least one of a service tier, an enabling tier, anda personalization tier. The method includes applying an expert engine toanalyze one or more mobile device user and transaction environmentrequirements. In an example, the expert engine may include an expertengine tier. The expert engine tier may interact with an experienceframework to adapt the one or more user requirements. In an example,applying the expert engine may include applying the expert engine toanalyze a user's habits. The method may further include configuring oneor more platform features in accordance with the analysis. In anembodiment, configuring the one or more ecosystem features may includeconfiguring a user interface based on one or more transactionrequirements. In an example, configuring the one or more ecosystemfeatures may include configuring one or more display features of amobile device. In an example, the one or more display features may beconfigured based on a regional preference associated with a location ofthe mobile device. In an example, the one or more display features maybe configured based on an identified client base.

A multi-tiered secure mobile transaction enabling platform mayfacilitate scaling a multi-domain ecosystem for secure personalizedtransactions to tens of millions of users, comprising applying an expertengine for analyzing user and transaction environment requirements andconfiguring ecosystem features to simplify transactions, such asconfiguring a user interface based on transaction requirements. Theexpert engine may interact with an experience framework to facilitateadapting to user requirements.

It is anticipated that users will have varying preferences, habits,perceptions, perspectives, requirements and styles when it comes tousing devices and applications. In addition to the parameters mentionedabove, users have individual preferences, tastes, and requirements forthe presentation of results of their operations. Many or mostapplications currently available constrain users to follow a specificregimen to carry out transactions and obtain and view results from thesystem.

The expert engine tier described in this document may learn user habits,preferences and other parameters mentioned above, and may adjust thesystem and/or the application to present itself in the manner mostsuitable to individual users including regional preferences (“mostFrench like it this way while the Americans like it that way”), mobiledevice capabilities (screen size, keyboard available or only on-screen,and the like), and differences in client base (low-end versus luxurycustomers).

An expert engine tier may also manage the vagaries in the ecosystem suchas breaks in communication, delays in the server's response, abnormaloperating conditions such as a rundown battery or signal drops, etc. toensure an uninterrupted or interruption managed experience for the user.The expert engine may ensure that operation breakdowns are managed andthe user is able to seamlessly resume operations as and when normalcyhas been restored.

The issues mentioned above are further compounded when we add to themthe dimension of having a large number of disparate users. The numbersare estimated to run into tens of millions with thousands transactingsimultaneously.

An expert engine may essentially manage all users as outlined earlier,and also carry out analytics on the transactions, usage patterns, andother parameters that will help the ‘learning’ process of an inferenceengine.

Referring to FIG. 12, an expert engine as described herein is exemplarydepicted for facilitating modifying each of a personalization and aservice tier for each of a plurality of service providers in amulti-domain ecosystem for secure personalized transactions.

An expert engine tier/facility 1208 may take provider specificpersonalization tiers 1202 and adapt them to provide adaptedpersonalization tiers 1210 by analyzing a variety of aspects 1214 of theecosystem, including transaction environment aspects, user historyaspects, user environment aspects, historical transaction related dataaspects, device related aspects, ecosystem status (e.g. responsivenessand/or stability and the like), eco system size as may be determinedfrom a number of enrolled participants and/or ecosystem transactionactivity, provider specific aspects, and the like. Similarly, providerspecific service tier data 1204 may be expertly adapted by the expertengine tier/facility 1208 to produce one or more expertly adaptedservice tiers 1212.

The methods and systems described herein of multi-domain ecosystemsecure personalized transactions includes a platform for enablingmultiple types of electronic wallets in an ecosystem. The platform mayinclude a software development kit for developing a provider specificwallet. The software development kit may be executable at least in partby a networked server. The platform may further include a plurality ofreference wallets accessible through the software development kit. Theplurality of reference wallets may include such as a reference walletfor each of a plurality of providers including an instrument issuer, aservice provider, and an instrument acquirer. The platform may furtherinclude a runtime container operable on a client device for receivingdifferent types of provider specific wallets. The container mayfacilitate distinct operation of each type of provider specific walletfor performing secure transactions between a provider specific walletand a provider that developed the provider specific wallet.

The methods and systems described herein of multi-domain ecosystemsecure personalized transactions includes a computer readable mediumcontaining program instructions. The execution of the programinstructions by one or more processors of a computer system may causethe one or more processors to carry out the steps that includeconfiguring one or more widget modules in a wallet container on a mobiledevice. The steps may further include accessing one or more walletmodules in the wallet container through the one or more widget modules.In an example, accessing the one or more wallet modules may includereceiving a communication from a service provider module to a firstwidget module in the wallet container and enabling authenticated accessby the first widget module to the wallet module. In an example, each ofthe one or more wallet modules may be configured and installed in thewallet container over a network by a service provider. In an example,each of the one or more wallet modules may be configured and installedin the wallet container over a network by a user. The steps carried outby computer readable medium may further include authenticating each ofthe one or more widget modules prior to accessing the one or more walletmodules.

A secure ecosystem infrastructure that may enable multiple types ofelectronic wallets in a multi-domain ecosystem of issuers, serviceproviders, and acquirers of instruments may include client-sidefunctionality including a wallet container operable on a mobile devicethat facilitates isolation of a plurality of distinct wallets andfurther facilitates accessing each distinct wallet through widgetmodules configured into the wallet container and securely maintained asseparate modules, wherein each widget must be authenticated to accessany wallet. Such an ecosystem infrastructure may also includepersonalized service provider modules operating remotely from the mobiledevice and distinctly from each other wherein a service provider modulecommunicates to a widget in the wallet container and the walletcontainer facilitates authenticated access by the widget to a wallet. Inaddition, ecosystem infrastructure elements may include capabilities forconfiguring and installing each of the distinct wallets in the walletcontainer over a network by a service provider, issuer, proxy, and thelike. These and other features of a secure ecosystem infrastructure forenabling multiple types of electronic wallets is further depicted anddescribed in FIGS. 8 and 9.

The methods and systems described herein of multi-domain ecosystemsecure personalized transactions includes a method that includesanalyzing at least one requirement. In an example, the at least onerequirement may be selected from the set consisting of businessstrategies, go-to-market strategies, exit strategies, competitivestrategies, product roadmaps, hardware release schedules and featurelists, software release schedules, feature lists, and applicationprogramming interfaces. In an example, the at least one requirement maybe analyzed within the context of a service provider business model. Themethod may further include configuring a service tier, an enabling tierand a personalization tier based, at least in part, upon the analysis.In an example, the enabling tier may be configured to includeinfrastructure runtime container software built using a specificdevelopment environment associated with a mobile device. In an example,the service tier may be configured to include a library of commonplatform services that may be used to implement a plurality of businessuse cases.

Methods for selecting new business needs and device functionality forinclusion in each of an enabling tier, a service tier, and apersonalization tier may include analyzing requirements related tobusiness strategies, go-to-market strategies, exit strategies,competitive strategies, product roadmaps, hardware release schedules andfeature lists, and software release schedules, feature lists, andapplication programming interfaces to configure in a service tier, anenabling tier, and a personalization tier to ensure satisfaction of eachanalyzed requirement within the context of a service provider businessmodel. Features may be similarly determined for additional tiers, suchas expert engine and experience framework tiers.

A method or process of breaking down parts of the overall transaction,service or process into the multi-tiered ecosystem platform may be basedon a combination of analytics, heuristics and requirements, optionallyaided by tools including expert engines based on artificial intelligenceconcepts. Such a method or process may take into account theperspectives and requirements, both present and anticipated in future,related to—business strategies, go-to-market strategies, exitstrategies, competitive strategies, product roadmaps, hardware releaseschedules and feature lists, and software release schedules, featurelists, and application programming interfaces.

In most cases, the aspects and parameters mentioned above can result inthe service requirement to be logically segmented or partitioned intothree tiers, namely the personalization, service and enabling tiers.

Referring to FIG. 13, an embodiment of selecting business needs anddevice functionality for inclusion in each of an enabling tier, aservice tier, and a personalization tier of a multi-domain ecosystemplatform for secure personalized transactions. Based on participantbusiness needs and device functionality, an ecosystem feature allocationengine 1302 may process rules and controls such as to allocate featuresof the ecosystem to the enabling tier 1304, a service tier 1308, and apersonalization tier 1310.

In an example, the enabling tier 1304 may include infrastructure orbusiness independent components that may be necessary to develop mobileapplications. The service tier 1308 may include a collection ofreference service implementations for wallet ecosystems and value addedservices. The personalization tier 1310 may include a set of tools andAPIs that may be necessary to develop the wallet and the widget services(described in this document) and build a comprehensive ecosystem.

In an example, the enabling tier 1304 may include features different forthe client and the server. In the enabling tier 1304, the client may beconfigured to include infrastructure runtime container software (SW)that may be built using a specific development environment associatedwith the mobile device. In an example, the enabling tier 1304 mayprovide the client a common abstraction to underlying devicecapabilities with common Developer APIs, UI Interpretation and renderingengine, business execution environment, widget and wallet lifecyclemanagement, patterns for OTA/proximity transactions, and the like. Onthe server side, the enabling tier 1304 may provide to a serverinfrastructure software that may be deployed in a network provider'sdomain that may be configured for establishing and managing a securemobile transactional ecosystem. In an example, the enabling tier 1304may configure the server features such as wallet management, statefultransaction engine, object lifecycle management, channel specificcommunication, multi-domain security policy and risk management, OTAprovisioning, and the like.

In an example, the service tier 1308 may include multiple features forthe client. For example, the client may be configured to include alibrary of common platform services that may be used to implement aplurality of business use cases. The common platform services may runwithin the business execution environment provided by the enabling tier1304. In an example, the service tier 1308 may include three basicunits. A first unit may be a use case, for example, a set of client sideworkflows and templates built for the various transaction services. Asecond unit may be an instrument, for example, a corresponding singlewallet instrument that may facilitate mapping to real world instruments.In an example, the instrument may provide data for a visual or adisplay. In an example, the instrument may provide data for anover-the-air (OTA) transaction. In an example, the instrument mayprovide data for a proximity transaction. In an example, the instrumentmay provide data for an administration. A third unit may include atleast one trust model. The trust model may facilitate implementation forauthentication schemes, which may include two factor authentication(2FA). The 2FA may be required by different widget providers and may berelevant for the escosystem.

In an example, the service tier 1308 may include multiple features forthe server. The server may be configured to include a library ofbusiness specific components and associated service templates that maybe partially or entirely reused to develop a customer centric offering.In an example, the services may include wallet services and value addedservices. The wallet services may include managing the lifecycle of thewallet and payment tokens. The value added services may includeproviding business services. The service tier 1308 may include threeunits. A first unit may be a use case, for example, the server sidetemplate may be built using the mobile enabling tier 1304'stransactional framework for implementing a specific use case. In anexample, there may be one or more varying templates for a businessservice (e.g., bill payment, movie ticketing, and the like). A secondunit may include at least one instrument or token. The instruments mayinclude business specific data objects (for example, credit card, bankaccount, bill, coupons, etc.) that may be reused across various servicesand may provide a commonly understood definition for the object andimplementation for the rules governing the object's lifecycle andtransaction. A third component may include at least one trust model. Thetrust model may facilitate implementation for different authenticationschemes for the services, including support to operate within individualtrust clusters with their independent TSMs.

In exemplary and non-limiting embodiments, the personalization tier 1310(may also be referred to as a SDK tier) may include different featuresfor the client and for the server. In an example, features associatedwith the client in the SDK tier may be divided into 2 parts. A firstpart may be a wallet SDK and a second part may be a widget SDK. In anexample, the wallet SDK may provide access to the wallet services,privileged APIs, and the necessary components to build the walletcontainer application or user experience. In an example, the widget SDKmay facilitate the ecosystem partners to build their widgets that mayoperate within the wallet container. In exemplary and non-limitingembodiments, the SDK may essentially facilitate client sideconfiguration and user experience. In an example, the SDK may facilitateconfiguration by facilitating customizability for parameters exposed bythe client container. This may include device specific parameters,variables (like PIN size, exit confirmation, selecting inclusion ofmodules, etc.). In an example, the SDK may provide user experience byfacilitating the development of differentiating user experiences acrosshandsets.

In an example, the SDK for the server may include at least one librarythat may allow any ecosystem server to communicate with the wallet,format content for the widgets, and expose services to the walletapplication. The library may include a configuration module and aninterface module. The configuration module may allow customizability forparameters exposed by the server's mobile enabling tier 1304 and servicetier 1308. The parameters may be configured in property files andresource bundles. The interface module may provide connectors developedto facilitate communication with various backend systems that maycollaborate to fulfill the complete end to end service. The interfacemodule may also include web services exposed by the platform tointegrate peripheral systems like customer care, user portals, and thelike.

In an example, a device manufacturer may determine that NFCfunctionality will be offered as a new communication option on a newdevice, in order to support the business objectives of the company. Upondetection of the availability of the new NFC functionality, the businessneeds and device functionality allocation engine 1302 may review therequirements of the device manufacturer and allocate the devicefunctionality to the enabling tier 1304. The enabling tier 1304 may thenmake the NFC device functionality available to the service providers whooffer that device to its customers. The service provider may then enableNFC functionality on a device through the service tier 1308 and enablean end user to activate NFC functionality as a payment method by addingan NFC icon to a mobile widget using the SDK provided by thepersonalization tier 1310.

In accordance with exemplary and non-limiting embodiments, the presentdisclosure provides a mobile transaction platform (MTP) that may build asecure and a robust ecosystem for mPayment and mCommerce. In an example,the MTP may incorporate a widget architecture that may allow serviceproviders to build their own independent widgets that can be downloadedand installed within a mobile wallet application. In an example, the MTPmay offer a comprehensive Software Development Kit (SDK) to the serviceproviders. The SDK may allow the service providers to quickly buildtheir widgets for all MTP handsets without having to writephone-specific code. While the mobile wallet application may bedistributed and promoted by an ecosystem operator, the service providersmay build and offer their own unique services through the widgets andleverage the distribution channels created by the ecosystem operator.The mobile wallet application may offer the widgets a secure andisolated runtime environment.

In an example, the MTP may manage the one or more widgets using a widgetmanagement component that may manage use cases, design, architecture,data structures, lifecycle, versions and the like of the widgets withinthe MTP.

The MTP may include an mClient such as to enable infrastructure forrapid mobile application development. The mClient may provide acontainer-based approach such as to support multi-tenant applicationarchitecture. In an example, an mClient runtime may be a container forrunning the mobile wallet applications. The wallet application may be anoverarching and a primary application that may provide an overall userexperience and server as an entry point to widgets. In an example, thewidgets may include service groups developed by third parties and runwithin the mClient container, independent and isolated from the walletapplication. The mClient may handle complexity related to applicationexecution, security, reliability, and the like and thereby, may allowthe developers to focus more on service's unique functions. The mClientmay enable the developer not to worry about most of the complexity,including device specific implementations. In an example, the mClientcontainer may be built on top of the device specific applicationprogramming interfaces (APIs) and available for popular deviceenvironments. The device independent API may ensure that applicationsthat may be developed using the SDK may run across all supported MTPhandsets. These APIs may be designed to provide all the support thatdevelopers may need to create dynamic user experiences. In an example,wallet application and widgets may be built using the MTP SDK. In anexample, the wallet application and the widgets may be identical instructure (screens, JavaScript, & CSS Styles), except that the walletapplication may access a relatively wider set of privileged APIs. Whenthe wallet application may be first invoked, the wallet application maytake control until the user may select an entry point into a particularwidget (a card image, menu option, etc.). The wallet developer, as apart of the overall UI design, may determine the one or more entrypoints for the widget. On selection of the entry point of the widget,the widget may be launched (within the same runtime application) and thewallet may be suspended. In an example, the wallet may stop executing.Once the widget execution is completed, the wallet may be resumed andthe screen from where the user left the wallet may be returned to thedisplay.

In accordance with the exemplary and non-limiting embodiments, thewidget developer may develop the widgets and test depending on therequirement that may be provided by the service provider. The serviceprovider may submit the developed widget to an MTP server. Further, theecosystem provider may certify and publish the widget so that the widgetmay be accessible to the wallet users. In an example, the wallet usermay discover and download the widget to access the mobile servicesprovided by the service provider. In an example, the widget may alreadybe installed in the mobile phone of the wallet user. The wallet user maydiscover the higher version of the widget and accordingly, may updatethe existing version of the widget with the updated version. In anexample, the wallet user may not be interested in using the installedwidget and accordingly, the wallet user may terminate and remove (i.e.,uninstall) the widget from the mobile device.

In an example, the widget developer may be trained to use the SDK andunderstand the services to build the widgets. Additionally, the widgetdeveloper may have guidelines that may be specified by the ecosystemprovider such as to ensure that the widget may comply with theguidelines.

In an example, the service provider may be an entity that may issue orown a service product. The service may include a Credit Card formPayment, a Movie Ticketing service, an mBanking service, and the like.In an example, the service provider may commission the widgetdevelopment and enter into a business agreement with the ecosystemprovider.

In an example, the ecosystem operator may be an entity that may set upan mPayment and mCommerce ecosystem within the region/geography orbusiness domain. The ecosystem may not necessarily be a payment orcommerce ecosystem. In an example, the ecosystem can be a healthcare orother complex business domain.

In an example, the wallet user may be a consumer that may havedownloaded and activated the mobile application (or wallet if related toa payment domain) on their phone.

In accordance with the exemplary and non-limiting embodiments, thepresent disclosure provides a plurality of use cases for the widget. Inan example, one or more use cases for the widget may include a DevelopWidget use case, wherein the developer may build the widgets as per thespecifications provided by the service provider. In an example, one ormore use cases for the widget may include a Test Widget use case,wherein the developer may test the widgets using both a dummy containerand possible a sandbox wallet application. In an example, one or moreuse cases for the widget may include an Approve Widget use case, whereinthe business sponsor within the service provider may review and approvethe widget. Such use cases may not be on the MTP server or client.

In an example, one or more use cases for the widget may include a SubmitWidget use case, wherein the service provider may send the widget to theecosystem operator along with a set of test cases. The widget may beinstalled on the ecosystem provider's test/UAT environment. In anexample, one or more use cases for the widget may include a ValidateWidget use case, wherein the ecosystem operator may review the widgettest cases, test the widget, validate all functionality of the widget,and check the widget against all defined guidelines. In an example, oneor more use cases for the widget may include an Approve Widget use case,wherein the ecosystem operator may approve the widget and permit thewidget to be included within the wallet application.

In an example, one or more use cases for the widget may include a RejectWidget use case, wherein the ecosystem operator may reject or deny thewidget for some reason. The entire process so far may be repeated oncethe issues are fixed and a new widget may be submitted. In an example,one or more use cases for the widget may include a Publish Widget usecase, wherein the ecosystem operator may publish the widget and load thewidget to the MTP Server so that the wallet users may download thepublished widget. In an example, one or more use cases for the widgetmay include a Suspend Widget use case, wherein the ecosystem operatormay suspend the widget that has been published due to some problem untilthis problem may be rectified. In an example, one or more use cases forthe widget may include a Discover Widget use case, wherein the walletusers may be alerted to the availability of the widget through an alertor through a proactive search for available widgets. In an example, oneor more use cases for the widget may include a Download Widget use case,wherein the widget may be provisioned to the user's MTP mobile clientapplication and may be installed and ready for use. In an example, oneor more use cases for the widget may include an Upgrade Widget use case,wherein the wallet users may upgrade their widget to a newer versionfrom within the mobile wallet application. In an example, one or moreuse cases for the widget may include a Remove Widget use case, whereinthe user may decide that the widget may be no longer desired. The walletuser may remove the widget and all associated data stores from thewallet application.

In an example, the widget may include a plurality of services that mayprovide the wallet user with meaningful, domain specific functionalitythat may augment the capabilities of the mobile application that may beused by the wallet user. The widget may be referred to as a widgetbundle or a service capsule. In an example, the widget bundle mayinclude a widget profile data, a widget user interface, widget businesslogic, and widget permissions.

In an example, the widget profile data may include information regardingthe widget, service provider, version, and the like. In an example, thewidget user interface may include screens, content, and styles that maybe used by the wallet container to render the widget's user interface.In an example, the widget business logic may contain scripts that mayencapsulate the widget's business logic that may get executed when thewidget may be loaded on the mobile device. In an example, the widgetpermissions may include an access control list that may includepermissions that the ecosystem operator may have offered to the widgetwhile running within the mobile application.

In accordance with the exemplary and non-limiting embodiments, thepresent disclosure provides management of a widget that may be groupedinto two large phases. The first phase may include the widgetdevelopments and the second phase may include widget usage. The widgetdevelopment phase may include all steps leading up to the widget beingready for use and the widget usage may include all steps relating to theutilization of the widget and its lifecycle.

In accordance with the exemplary and non-limiting embodiments, thepresent disclosure provides a method 1400 as illustrated in FIG. 14 ofdeveloping a widget in accordance with an example. At 1402, the method1400 may start and at 1404, the method 1400 may allow to build thewidget. In an example, the developer may use the SDK offered by the MTPto build the widget in accordance with the requirements specified by theservice provider. At 1408, the method 1400 may test the widget. In anexample, the system may perform static code verification on the widget'sJava-scripts. At 1410, a decision may be made such as to complete thewidget development. If the widget development is not completed, themethod 1400 may move to 1404, where the developer may work further onthe widget. If the widget development is completed, the method 1400 maymove to 1412 where the service provider may review the widget. If it isdetermined at 1414 that the service provider is not satisfied with thewidget, the method 1400 may move to 1404 where the developer mayincorporate the feedback of the service provider to build the widget.

On satisfaction of the service provider, at 1418, the widget may besubmitted to the ecosystem operator. In an example, an employee of theservice provider may submit the widget through an online mode ofsubmission to the ecosystem operator. At 1420, the ecosystem operatormay verify the widget such as to identify any errors in the widget. At1422, the ecosystem operator may determine passing or failing of thewidget. If the widget has not passed the requirements of the ecosystemoperator, at 1424, the ecosystem operator may reject the widget and themethod 1400 may end at 1428.

If the widget has met the requirements of the ecosystem operator, at1430, the widget may be certified and at 1432, the widget may bepublished. Further, at 1434, a smoke test may be performed on thewidget. At 1438, it may be determined as whether the widget has passedthe smoke test. If the widget may not pass the smoke test, at 1440,troubleshoot may be initiated and the method 1400 may move to 1420 tore-verify the widget. Otherwise, at 1442, the ecosystem operator mayopen the widget to the public so that the public may download and usethe widget. At 1444, the method 1400 may end.

In accordance with the exemplary and non-limiting embodiments, thepresent disclosure provides a method 1500 of widget usage in accordancewith an example as illustrated in FIG. 15. At 1502, the method 1500 maystart and branch into three different steps. At 1504, the wallet usermay browse the widget registry such as to identify one or more widgets.At 1508, the wallet user may select the required widget and at 1522, themethod 1500 may allow the wallet user to download the widget.

In an example, at 1510, the wallet user may receive an updatenotification for the widget that may be installed in the device of thewallet user. The wallet user may desire to download the update for thewidget and accordingly, at 1522, the method 1500 may allow the widgetuser to download the latest version of the widget that may be availableat the MTP server. In an example, at 1512, the service provider mayenroll with the MTP server for providing one or more services to the endusers. At 1514, one or more service may be approved and at 1518, theecosystem operator may notify the wallet user regarding the approvedservice of the service provider. AT 1520, the wallet user may read thenotification and at 1522, the method 1500 may allow the wallet user todownload the widget associated with the notified service of the serviceprovider.

At 1524, the wallet user may install the widget and accordingly, at1528, the ecosystem operator may be notified regarding installation orupdation of the widget by the wallet user. At 1530, service provider maybe notified regarding the installation of the widget.

In accordance with the exemplary and non-limiting embodiments, thepresent disclosure provides a method 1500 for notifying the serviceprovider regarding removal of the installed widget. At 1532, the walletuser may use the widget that may be installed in the device of thewallet user. At 1534, a determination may be made as to whether thewallet user is interested in the continuous use of the installed widget.If the user may want to use the widget in the future, the method 1500may move to 1532 where the user may continue to use the widget.Otherwise, the method 1500 may move to 1538, where the widget may beremoved from the device. At 1540, the server may be notified regardingthe removal of the widget and at 1542, the service provider may benotified regarding the removal of the widget.

In accordance with the exemplary and non-limiting embodiments, thepresent disclosure describes a use case wherein the service provider maybe created. The service provider may also be referred to as a widgetprovider. As discussed above, widget providers may have entered intobusiness relationships with the ecosystem operators such as to createand promote their widgets. In an example, before a widget can be createdin the system, the service provider entity may be required to be updatedin the system. For example, an employee of the ecosystem operator maylog into a system management console and may select an option of widgetmanagement. Further, the employees may select a link to add the serviceprovider, fill the corresponding details associated with the serviceprovider and create the service provider record. In an example, thesystem may e-mail the service provider details of their enrolment alongwith their unique identifier.

In accordance with the exemplary and non-limiting embodiments, thepresent disclosure describes a use case Submit Widget, wherein thewidget may be stored on the MTP test bed/UAT system within the ecosystemoperator's domain. In an example, the widget may have been developed andcreated using a correct version of the MTP SDK tools. Further, thewidget may be internally tested and approved for submission by theservice provider. In an example, the MTP system may allow submission ofthe widget in two modes: on-line and offline.

In an example of offline submission of the widget, an employee of theservice provider may send the widget bundle associated with the widgetto an authorized employee of the ecosystem that may select the widgetmanagement from the MTP system management console. Further, theecosystem's employee may select a link to submit the widget and uploadthe widget bundle. The MTP system may validate the widget bundle and thesystem may create widget records and set the state of the widget asSUBMITTED. Accordingly, the system may confirm the employee of theservice provider that the widget has been successfully submitted.

In an example of online submission of the widget, the employee of theservice provider may configure an Eclipse plug-in tool to point to thecorrect MTP server. Further, the service provider's employee mayconfigure their unique widget provider ID and select the option of“submit widget”. The Eclipse tool may create a widget submission requestto upload the widget to the MTP server that may validate the widgetbundle, create widget records and set state of the widget as SUBMITTED.The MTP system may return confirmation that the widget has beensuccessfully submitted and may send a notification to the employee ofthe ecosystem that a new widget has been submitted.

In accordance with the exemplary and non-limiting embodiments, thepresent disclosure describes a use case Validate Widget, wherein thewidget may be successfully tested. In an example, the widget has beensubmitted to the MTP and may be ready for testing. The employee of theecosystem (EOE) may select the widget management from the MTP systemconsole. Further, the EOE may select a link for a widget listing thatmay show all widgets in the SUBMITTED state. The EOE may select thewidget to be tested and the MTP may prompt a confirmation with achecklist of all required verifications that may be performed. The EOEmay select the Test option and the system may change the state of widgetfrom SUBMITTED to TESTING. In an example, the system may perform staticcode verification on the widget's Java scripts and may confirm thatstatic code verification has passed. The system may display theverification result and prompt the EOE to review and confirm it. The EOEmay confirm the verification result approval and may perform all othertests as per the ecosystem guidelines.

In accordance with the exemplary and non-limiting embodiments, thepresent disclosure describes a use case Approve Widget, wherein thewidget may be approved and published. The EOE may log into the MTPSystem Console and select a link for approving the widget in the widgetmanagement section. The system may show all widgets in the TESTING stateand thereby, the EOE may select the widget to approve. Accordingly, thesystem may prompt confirmation with a checklist of all requiredverifications to be performed and the EOE may confirm and check alltests that have been performed. Further, the EOE may enter anycomments/remarks and select an Approve option. Thereafter, the systemmay change the state of widget to APPROVED and may confirm that thewidget has been approved.

In accordance with the exemplary and non-limiting embodiments, thepresent disclosure describes a use case Publish widget, wherein thewidget may be published and ready to be downloaded to the user's walletapplication. The EOE may log into the MTP system console and select alink for publishing the widget in the widget management section. Thesystem may show all widgets in the APPROVED state and the EOE may selectthe widget to be published. The EOE may enter any comments/remarks andselect a publish option. The system may prompt for confirmation and theEOE may confirm that widget may be published. Accordingly, the systemmay change the state of widget to PUBLISHED and generate a signature forthe widget. In an example, the system may create a HASH of the widgetbundle to be securely stored on the wallet in the SE and sign the widgetbundle with an HMAC and have a shared key with the wallet. In anexample, the system may sign the widget bundle with an RSA key andinclude certificate within wallet. Thereafter, the system may confirmthat the widget has been published.

In accordance with the exemplary and non-limiting embodiments, thepresent disclosure describes a use case Suspend Widget, wherein thewidget state may be transitioned to SUSPENDED and it may no longer beactively downloaded. In an example, the EOE may log into the MTP systemmanagement console and select a link for suspending widgets in thewidget management section. The system may show all widgets in thePUBLISHED state and the EOE may select a widget to suspend the widget.The EOE may enter any comments/remarks and select a SUSPEND publish.Further, the system may prompt for confirmation and the EOE may confirmthe suspension of the widget. Accordingly, the system may change thestate of widget to SUSPENDED and may confirm that the widget has beensuspended. In an example, the system may generate an email notificationto the service provider that the widget has been suspended.

FIG. 16 illustrates a transaction flow diagram 1600 for installing awidget, according to an example. As shown in FIG. 16, the client 1602may include a wallet 1604 and a wallet runtime 1608. The one or morecomponents of the server 1610 may include mserver 1612, personalizationmodule 1614, and an enterprise service bus (ESB) 1618.

In an example, at 1620, the server 1608 may use the ESB 1618 to issuesoft card, service provider ID, and the product ID to thepersonalization module 1614. At 1622, a request such as get widgetprofile, identities such as provider ID, product ID, platform, status,and SDK version may be sent to the mserver 1612. At 1624, an object ispushed towards the wallet runtime 1608. At 1628, the personalizationmodule 1614 may communicate a request to the mserver 1612 to createwidget instance that may include a wallet ID, provider ID, and an appletID. At 1630, it may be determined that the object is a platform object.At 1632, the platform object may be handled and processed. At 1634, thewallet runtime 1608 may communicate a request to consume object JS. At1638, the wallet 1604 may respond with an object for downloading objectJS.

At 1640, the wallet runtime 1608 may communicate a request to downloadthe widget to the mserver 1612. At 1642, the mserver 1612 may preparethe widget response and mark widget status as SENT_FOR_DOWNLOAD. At1644, the mserver 1612 may send widget binary to the wallet runtime1608. At 1648, the wallet runtime 1608 may install the widget andaccordingly, at 1650, the wallet runtime 1608 may communicate to thewallet 1604 that widget installation is completed. At 1652, the wallet1604 may send an acknowledgment to the wallet runtime 1608, which inturn at 1654, may acknowledge to the mserver 1612. At 1658, the mserver1612 may mark the widget status as INSTALLED. At 1660, the mserver 1612may further communicate the acknowledgement to the personalizationmodule 1614 which in turn, at 1662, may execute the business flow. At1664, the personalization module 1614 may notify the card issuer via ESB1618. In addition, at 1668, the wallet runtime 1608 may acknowledge backto the acknowledgement of the wallet 1604. At 1670, the wallet 1604 maysend a confirmation and at 1672, the wallet runtime 1608 may clear thereliability queue.

In accordance with the exemplary and non-limiting embodiments, thepresent disclosure describes association of an instrument and wallet. Inan example, the platform (i.e., MTP) may get an instruction such as topush an instrument (e.g., soft card) in the platform. Various APIs maybe used and/or published such as to integrate the issuer system with theMTP. The MTP may get the service product from the master records basedon the identification parameters. In an example, the identificationparameter may include provider ID, type of the service product, anetwork provider type, and a correlation identity (e.g., a mobilenumber), and the like. The platform may fetch wallet account informationusing the correlation identity. The platform may create the instrument(i.e., service account reference) record that may be associated with thewallet account. The platform may mark the instrument record status asREGISTERED, which may be updated by the issuer system. Further,lifecycle of the can be controlled using the status such asWAITING_FOR_ACTIVATION, ACTIVE, CLOSED and the like. The platform maydeliver the instrument by triggering the wallet using a PUSHnotification or a piggyback channel.

FIG. 17 illustrates an example state diagram depicting a lifecycle ofthe widget in the MTP system. At 1702, the widget may be submitted withthe MTP. In an example, the EOE may submit the widget with the MTP. Inanother example, the employee of the service provider may use onlinesubmission feature to submit the widget with the MTP. As shown in theFIG. 17, at 1704, the widget may be submitted any number of times whilethe state is SUBMITTED. This may allow the developer to update thewidget before testing may begin. In an example, the widget may not bere-submitted when the widget is in a state other than the SUBMITTEDstate.

At 1708, the widget state may be updated to TESTING. During this state,the system may perform a plurality of tests (for example, static codeverification) on the widget. At this state, the system may change thestate of the widget either to APPROVED or REJECTED, depending on theresults of the tests. At 1710, the REJECTED state of the widget may notallow the developer to update the rejected widget. In other words, oncethe system may reject the widget, a new widget bundle (with the samewidget ID & version number) may be submitted and the process may berepeated. As a result, a new record in the widget table may be created.Further, the widget may not enter the SUBMITTED state if a widget withthe same widget ID and version number already exists in any state exceptSUBMITTED or REJECTED. At 1712, the widget state may be updated toAPPROVED, depicting that the widget may have cleared the testing stage.At 1714, the approved widget may be published and may be available fordownloading. Further, it may be possible that the published widget mayneed to be updated or the system may need to suspend the publishedwidget. Accordingly, at 1718, the widget may be suspended depicting thatthe widget may not be available for downloading. In an example, a widgetwith a mathematically greater version number can be SUBMITTED only ifall previous version numbers are in the APPROVED, PUBLISHED, REJECTED,or SUSPENDED state. In an example, the system may log the statetransition of the widget along with timestamp, unique identification ofthe actor, and audit trail of comments that have been entered by theactor.

The system may be configured to include various APIs for service accountmanagement. For example, the system may be configured to includecreation related APIs wherein the APIs may create the service productrecord, service provider record, service account reference record andthe like. In an example, the system may be configured to includeupdation related APIs wherein the APIs may update the service accountreference record, service account reference status (such as to controlthe service account reference lifecycle), and the like. In an example,the system may be configured to include listing related APIs wherein theAPIs may list of all registered service products available in thesystem, all registered service providers available in the system, andthe like. In an example, the system may be configured to includeretrieval related APIs wherein the APIs may retrieve service accountreference records based on wallet id filter criteria, service accountreference records based on widget ID filter criteria, service accountreference records based on product ID filter criteria, service accountreference records based on status filter criteria, service accountreference records based on service account reference number, serviceaccount reference records based on service product provider id filtercriteria, service account reference records based on widget instance idfilter criteria, service product based on service product id filtercriteria, service product provider records by provider id filtercriteria, and the like. In an example, the status values can beREGISTERED, WAITING_FOR_ACTIVATION and ACTIVE. The status values can beextended for customization or to introduce more granular level ofService Account Reference status. In an example, the service accountreference number can be a unique identifier shared by issuer systemwhich may act as the correlation id within wallet platform and issuersystem. In an example, the system may be configured to include updationrelated APIs wherein the APIs may update service product record, serviceproduct provider record, and the like.

In accordance with the exemplary and non-limiting embodiments, thepresent disclosure describes details of various data mappings. In anexample, the system may include various data fields for data associatedwith the service provider. An ID may be a unique system identifier ofthe service product provider and may be auto generated. The name fieldmay be used for displaying the name of the service provider and dataassociated with the service provider may be inputted while creating theentry of the service provider. Type filed may identify the service typeof the service provider and category field may define the category ofthe service product that may be offered by the service provider. Emailfiled may include an email address of the service provider. Further, thesystem may include one or more attributes that may be stored in the formof a key value pair (e.g., contact number) and may be used to introduceany custom attributes to the service provider.

In an example, the system may include various data fields for dataassociated with the service product. An ID may be a unique systemidentifier of the service product and the ID may be auto-generated bythe system. A provider ID may be the unique system identifier of theservice product provider as discussed above. A product ID may be aunique name (e.g., Gold bank card, Premium credit card, and the like) ofthe product and the system may include an application ID of anapplication (e.g., banking) associated with the service product. Typefiled may identify the type (e.g., credit card) of the service productand category filed may identify category (e.g., payment) of the serviceproduct. Name filed may identify display name of the service product anddescription may identify description of the service product. Further,the system may include attributes stored in the form of key value pairand attributes can be used to introduce any custom attributes to theservice product entity.

In an example, the system may include various data fields for dataassociated with the instrument (service account reference). An ID mayidentify a unique system identifier of the instrument and the system mayauto generate the ID. A wallet ID may identify a unique identifier ofthe wallet. An issuer ID may identify a unique identifier of the issuerand a product ID may identify a unique identifier of the serviceproduct. A widget instance ID may identify a unique identifier of thewidget instance and an account reference number may identify a uniqueidentifier of the instrument at the issuer end. Status may identifystatus (e.g., created, activated, suspended, and the like) of theinstrument. Similarly, the system may include wallet platform status.Provisioning time stamp may identify provisioning date (time stamp) ofthe instrument and download time stamp may identify download date (timestamp) of the instrument. Activation time stamp may identify anactivation date (time stamp) of the instrument and discontinue timestamp may identify discontinue date (time stamp) of the instrument. Lastactivity time stamp may identify last activity date (time stamp) of theinstrument and last state change time stamp may identify time stamp ofthe last status change. Further, the system may include nickname filedsuch as to identify user provided name of the instrument, other fieldssuch as OTA TX data, PROXIMITY TX data and the like.

An expiry date may identify an expiry date of the instrument and duedate may identify due date of the instrument. The system may includeextra attributes which can be used to accommodate any additionalinformation. These attributes may not be used by platform and may beused mainly for the widgets. Further, Logo Image may identify an imagewhich can be used to display Soft Card on the Wallet application. Thisimage can be cobranded as per the issuer's branding definition. CardImage may identify an image which can be used to display Soft Card onthe Wallet application. This image can be cobranded as per the issuer'sbranding definition. A product type may identify a unique identifier ofthe service product configured at the wallet platform during setup. AnAID (e.g. HEXSTRING) may identify an applet ID that may be a uniqueidentifier of the applet installed on secure element duringpersonalization. OTA Permission may identify Over the Air servicepermissions flag that can be managed by the issuer to control OTAservice permissions and Proximity Permission filed may identifyproximity service permissions flag that can managed by the issuer tocontrol proximity transaction or services. Soft card brand ID mayinclude branding information ID and a network operator ID may identify amobile network operator.

In an example, the system may include various data fields for dataassociated with the widget provider. An ID may identify a unique systemidentifier of the widget provider and the system may auto generate theID. Name file may identify display name of the widget provider anddescription may identify description of the widget provider. An emailmay identify an email address of the widget provider and status mayindicate status of the widget provider. A creation date time stamp mayidentify creation date (time stamp) of the widget provider and anapproval date time stamp may identify approval date (time stamp) whenthe widget provider has been approved.

In an example, the system may include various data fields for dataassociated with the widget provider. An ID may identify a unique systemidentifier of the widget profile and the system may automaticallygenerate the ID. An application ID may identify a widget application IDand an application name filed may identify an application name withwhich the widget may be associated. A provider ID may identify a uniqueidentifier of the widget provider and a provider name may identify thename of the widget provider. A minimum runtime version may identifyminimal required wallet platform version and a version may identifyversion of the widget. Status filed may identify the status (e.g.,created, published, and the like) of the widget profile.

In an example, the system may include various data fields for dataassociated with the widget instance. An ID may identify a unique systemidentifier of the widget instance and the system may auto generate theID. A widget bundle ID may identify a foreign key to wsc_widget_bundle.A widget profile ID may identify a unique identifier of the widget andthe system may define foreign key: ID of widget profile. A wallet ID mayidentify a unique identifier of the wallet. A provision time stamp mayidentify a widget provisioning date (in time stamp) and an installationtime stamp may identify widget installation date (in time stamp). Anactivation time stamp is an optional field and a removal time stamp mayidentify widget instance removal date. A status filed may identify thestatus of the widget instance.

In an example, the system may include various data fields for dataassociated with the widget permissions. An ID may identify a uniquesystem identifier of the widget instance and the system mayautomatically generate the ID. A widget profile ID may identify areference to the widget profile ID and a widget provider ID may identifya reference to the widget provider ID.

In an example, the system may include various data fields for dataassociated with the widget bundle. An ID may identify a unique systemidentifier of the widget instance and the system may automaticallygenerate this ID. A widget bundle may identify binary data of the widgetfile (.wgt) and a device software class may identify device softwareclass associated with widget bundle. A widget profile ID may identify areference to the widget profile ID and a bund hash may identify hash ofthe widget bundle file.

In some exemplary and non limiting embodiments, The methods and systemsdescribed herein of multi-domain ecosystem secure personalizedtransactions includes a mobile wallet (also referred to as a wallet)container that may support installing and managing multiple widgets.Each of these widgets may be developed and owned by different issuersand service providers. The wallet may be configured to fulfill varioussecurity requirements. Some of the exemplary key security environmentsdescribed here include widget integrity, widget access control, andwidget isolation. These are described as follows:

In an example, the widgets may be provisioned to a wallet runtimesecurely using a protected provisioning server like a wallet server. Thewidgets may be installed on handset. Any tampering to the widgets may beautomatically detected while on the handset, and necessary actions maybe taken.

In an example, access to an issuer security domain applet may beexclusive to the issuer widget. The system may prevent any issuer widgetto access another issuer's security domain. The system may prevent thewidget from accessing System Actions which may not be granted explicitlyto the given widget. The system may prevent any issuer widget fromaccessing URLs/domains other than what are explicitly granted to thegiven widget.

In an example, any issuer widget may have exclusive access to theissuer's workflow code. The system may be configured so that any issuerwidget may not access any other issuer's workflow code. The system canbe configured so that any issuer widget may have exclusive access to theissuer's user interface (UI) Code. The system may be configured so thatany issuer widget may not access any other issuer's UI code. The systemmay be configured so that any issuer widget cannot access any otherwidget's persistent data. The system may be configured so that anyissuer widget may not access any other widget's static resources(Images, Files, etc).

In some exemplary and non limiting embodiments, The methods and systemsdescribed herein of multi-domain ecosystem secure personalizedtransactions includes an access control mechanism (ACM) may beconfigured to manage “resources” against a given “policy”. In someexemplary and non limiting embodiments, The methods and systemsdescribed herein of multi-domain ecosystem secure personalizedtransactions includes, few exemplary resources being managed may includeWidget Workflow Code, Widget Data, Widget UI Code (Screens), SecureElement, Server Communication. In an example, to determine the “policy”,the present disclosure may have an Access Controller that may use thegiven widget's “Widget Descriptor” as the policy file. The WidgetDescriptor may be a simple Key-Value pair structure which is created bya widget developer (to describe the necessary resources) and signed by amobile transaction platforms (MTP) server based on the wallet operator'sprocesses. The access control mechanism may involve a widget descriptorlife cycle and a mClient access control in the overall process ofmanaging resources against a given policy. These two aspects of theprocess may be described below.

FIG. 18 illustrates the widget lifecycle from development to execution.In some exemplary and non limiting embodiments, the widget life cycle(represented by 1800) may have phases with responsibility demarcationbetween issuer and JVL's sub systems. The phases may include widgetdevelopment, widget verification and approval, widget delivery, widgetinstallation and widget execution. The widget development phase of thewidget life cycle may include a toolkit 1802. In an example, the toolkit1802 may be based on Microsoft Visio®. A mobile transaction platformtool (MTP) 1804 may support the toolkit 1802 to facilitate widgetdevelopment. The widget development may be followed by a widget packagegeneration stage. During, the widget package generation a widget bundle1808 may be formed by the MTP tool 1804. The widget bundle 1808 maycomprise a widget descriptor, a screen support file and a theme supportfile (these may be explained below in greater detail). The widget bundle1808 may be sent for a static verification, policy approval or policyprovisioning by the MTP tool 1804 to a mobile transaction platform (MTP)1810. In an example, the policy provisioning and the widget provisioningprofile may be provided using a trusted service manager (TSM) 1814. Inan example, the widget provisioning may be providing using an accesscontrol list (ACL), as explained by way of later sections. The MTP 1810may be configured for publishing the widget bundle 1808 afterverification. In an example, widget provisioning and publishing may besynchronized and take place simultaneously over the MTP 1810 and the TSM1816. The MTP 1810 and the TSM 1816 may send the widget bundle 1808after verification and publishing to an mClient 1818. The mClient 1818may be configured to include the widget bundle 1808, a block forplatform services, a block for data services, a block for communicationservices and a block for a secure element. The mClient 1818 may define aruntime footprint for the widget bundle 1808. The mClient may beexplained later by way of FIG. 21.

In some exemplary and non limiting embodiments a first phase in widgetlife-cycle may be widget development. In an example, the mobiletransaction platform (MTP) may support a Microsoft visio based widgetdevelopment toolkit to automate Widget development. The widgetdevelopment may take place in an issuer domain. The widget may be madeup of a plurality of widget artifacts. In an example, the widget may bemade up of a screen.xml file, a content.xml file, a theme.xml file, aplurality of script files, a plurality of images, and a widgetdescriptor. In an example, the widget development toolkit may generatewidget's artifacts like screen, content etc. along with the widgetdescriptor. The widget descriptor may capture widget access requirements(or requests) for different resources like Actions/URLs/Applets etc bythe developer.

In some exemplary and non limiting embodiments, a next phase in widgetlife-cycle may be widget verification and approval. In an example, thewidget approval step may involve validation of the Widget. In anexample, the widget verification may take place at a wallet platform(for example, a JVL wallet platform—certification tooling). The widgetapproval step may further involve approval or provisioning of theWidget. The present invention provides a set of tools for a staticanalysis of the widget, which may help the overall approval process. Inan example, the technical process of widget approval may include varioussteps. A first step may be creating a static analysis report for thegiven widget, indicating any warnings/duplications/conflict. In anexample, these indications may relate to an application protocol dataunit conflict (APDU), an uniform resource locator (URL) Conflict, apresence of too many external resources, use of restricted/controlledapplication programming interfaces (API). A next step may be capturing amanual approval of the widget recording the approval conditions andaccepted/ignored warnings. A next step may be creating a widgetprovisioning profile. The widget provisioning profile may include thehash of the widget binaries and the ACL. A next step may be creating awidget package to be downloaded using a wallet channel.

In some exemplary and non limiting embodiments, a next phase in thewidget life cycle may be the widget delivery and installation. In anexample, the widget may be ready for delivery once it is certified andmay be available for download from the wallet platform. In someexemplary embodiments, the widget download and installation may betriggered due to various events. The events may include a new cardprovisioning event by the issuer.

In some exemplary and non limiting embodiments, the mClient's widgetmanager may execute various steps at the time of installing the widget.A first step may be to verify the integrity of the widget bundle afterthe widget bundle has been downloaded. In an example, the verificationmay be done using secure element services. In case, the integrity of thewidget bundle is verified, the widget bundle may be added to themClient. In case, the integrity of the widget bundle is not verified, anerror message will be shown and the widget bundle will not be added tothe mClient.

In some exemplary and non limiting embodiments, a next phase in thewidget life cycle may be the widget execution. The Widget's integrityand access profile may be determined by the wallet manager for each runof the widget. The widget execution and integrity check may include aload time integrity check, and a runtime access control. The load timeintegrity check may check if the widget may be ready for execution postsuccessful installation. The Hash may be verified every time a widget isloaded for execution. This validation may be required to ensure that thewidget or its data has not been tempered with during the idle time ofthe wallet or the widget. The runtime access control may check if theWidget may start its function once it passes through the hashverification step at its load time. The widget access controller mayensure that the widget trying to access a particular resource may be asper proper authorization i.e. isolation rules.

The mClient Access Control (also referred to as the accesscontrol)—While the Widget Descriptor Lifecycle describes the process of“Establishing the policy”, the mClient Access Control mechanism ensuresthe “Enforcement of the policy”. This section describes a high leveloverview of the Access Control Mechanism.

FIG. 19 illustrates a high level view of the access control mechanism.As illustrated in FIG. 19, the resource access may be controlled by viaan access controller 1902. The access controller 1902 may determine theaccess rights based on the widget descriptor. The access controller 1902may avail a particular resource for example, a screen or an action or anapplet and the like to the widget. In exemplary and non-limitingembodiments, the access controller 1902 may include a set of designconsiderations. In an example, the access controller 1902 may require asystem for data storage 1904. The data storage may be configured tostore widget binaries. In an example, the widget profile provisioningand ACL information may be securely stored in a secure element 1908. Thesecure element 1908 may be in communication with the access controller1902. The widget profile provisioning and ACL information may include awallet security domain 1910, a wallet applet 1912, an issuer securitydomain 1914, and an issuer applet 1918. The access controller 1902 maybe in communication with a widget policy file 1920.

The access controller 1902 may be in communication with a near fieldcommunication (NFC) chip manager 1922, a resource manager 1924, and acommunication manager 1928. The NFC chip manager 1922, the resourcemanager 1924, and the communication manager 1928 may be in communicationwith a script execution platform 1930 that can be in communication witha screen manager 1932. As illustrated in FIG. 19, the widgets may nothave API level access to any native resources and all resource usage mayhave to be facilitated by the access controller 1902. For example, thesystem for data storage 1904 may have to communicate with the accesscontroller 1902, which may facilitate access of the NFC chip manager1922, the resource manager 1924, and the communication manager 1928 forthe system for data storage 1904. In an example, the screen manager 1922may be allowed to execute only one widget at a particular point of time.In exemplary and non-limiting embodiments, there may be only one accesscontroller 1902 for entire system.

In an example, a widget may be required to get its hash verified everytime it may be loaded or reloaded. In an example, only one widget may beallowed to be executed at.

FIG. 20 illustrates a method 2000 for loading and execution of a widgetwith respect to the access controller.

The method 2000 may require the mClient to load a wallet home at step2002. The mClient may be in interfacing with the user. The user mayselect a widget from the wallet home after the wallet home may be loadedonto the mClient. The mClient may be configured to open the widgetselected by the user at step 2004 of the method 2000. The mClient may bein communication with an application database. The mClient may beconfigured for loading the widget bundle of the selected widget from theapplication database at step 2008. The mClient may be in communicationwith the secure element. The secure element may verify the integrity ofthe widget bundle by performing hash verification at step 2010. Asmentioned above, the hash may be verified every time a widget may beloaded. In an example, the widget bundle may be contained in a walletapplet for has verification. The hash may be stored at the time ofwidget provisioning. The hash verification may be vital for the method2000 and in cases of hash verification failure; the widget execution maybe stopped. In cases where hash verification is successful, the mClientmay retrieve the widget descriptor for the selected widget from thesecure element. The widget descriptor may be stored in the main memoryof the MTP at step 2012 of the method 2000. The screen manager may loada next screen onto the mClient after the widget descriptor may beretrieved at step 2014. The mClient may request a platform serviceexecution at step 2018. In an example, he service may be requested byspecifying various parameters. The platform service may be exclusive theselected widget (platform services explained by way of FIG. 21). ThemClient may verify the widget descriptor so as to ensure that the widgetmay have privileges to access the platform service requested at step2020. The mClient may execute the platform service requested in case theselected widget may have privileges to access the selected platformservice at step 2022 of the method 2000. The method 2000 may require thewidget descriptor verification of the step 2020 for further execution ofthe widget. For example, if the widget descriptor may be found to nothave access to the selected platform service, then the mClient mayterminate the method. The mClient may communicate widget execution tothe user and the mClient may prompt the user to exit the widget afterexecution at step 2024 of the method 2000. The mClient may destroy thewidget after execution at step 2028. The mClient may be configured toload another wallet home if he user may want to execute another widget.

FIG. 21 illustrates a widget runtime footprint 2100 based on widgetaccess control policy. Each widget may create a logical footprint atruntime based on its access control policy. The access control policymay be defined in the widget provisioning profile. Each logicalfootprint may contain UI workflow resources 2102, actions/servicesresources 2104, data resources 2108, online resources or communicationresources 2110, and secure element resources 2112. As illustrated byFIG. 21, a boundary of the widget runtime footprint 2100 may describedherein.

Each widget may have its own screen 2114 and content files. A widget Amay not use content files from a widget B and vice versa. The widgetruntime footprint 2100 would use a native platform 2118 that may becommon for all widgets. Every widget may have a set of privilegedservices 2120 that may be used by a particular widget only. For example,the widget A may use only a widget A privileged service 2120A from theprivilege services 2120 and the widget B may only use widget Bprivileged service 2120B from the privilege services 2120. The widgetruntime footprint 2100 has a platform services block 2122 that may be apart of the mClient and therefore, may be used by any of the widget A orwidget B or any other widget. Any widget may access a common data 2124.The common data is stored by default in the widget runtime footprint2100. In an example, the widget may define, its own data store ifauthorized to do so. For example, the widget A may define a data source2128A and the widget B may define a data store 2128B.

The mClient may have a common URL platform 2130. Any widget for example,widget A or widget B may access data from the common URL platform 2130by default. In an example, each of the widget A and widget B may definetheir own communication end points 2132A and 2132B. The communicationend points may be domain names. In this example, widget A may use thecommunication end point 2132A and widget B may use the communication endpoint 2132B.

Any of the widget may not have default access to any SE applets. Eachapplet access that may be allowed for the given widget may be definedexplicitly in the widget descriptor. One or more Widgets may have accessto the same SE applet, based on the permission granted by the server'ssignature.

Detailed design of the widget isolation requirement. In some exemplaryand non limiting embodiments, The methods and systems described hereinof multi-domain ecosystem secure personalized transactions includes anoverall lifecycle of the policy file used for the access control.Various stages describe important files/data-structure and theirtransformation/processing, which ultimately results in access controlimplementation at the mClient container. The stages may include adevelopment stage, a provisioning stage, a widget launch stage, and awidget execution stage. These stages may be described herein.

The development stage may include the widget descriptor file. The widgetdescriptor file may be provided by a developer (for example, theissuer). The widget descriptor file may describe a set of resourcerequirements from the developer's perspective. In an example, during thedevelopment stage the widget along with the widget descriptor file maybe submitted for the widget approval process. In exemplary embodiments,the resource requirements may be justified during the widget approvalprocess. The widget may be signed by a provisioning authority (forexample, JVL) after, the widget has been approved.

The provisioning stage may include a widget provisioning profile. Thewidget provisioning profile may be created by the provisioning authorityas a part of approval process. The widget provisioning profile may be aderivation of the widget descriptor file with some additionalinformation. In an example, the additional information may include auser-ID, a widget hash and the like. The widget provisioning profile maybe provided using a trusted service manager (TSM). The widgetprovisioning profile may be stored inside the secure element (SE), usingthe wallet authentication/companion applet. The SE may provide a serviceto the wallet to accept the user ID and the widget hash and return theverification status as well as the ACL.

The widget launch stage may include at least one widget access record.In an example, the widget launch stage may include more than one widgetaccess record. The widget access record may be created and maintained bythe widget manager inside the wallet's main memory. The widget accessrecord may be a simple record structure where the resource permissionsmay be stored. When a widget is launched, the widget manager may contactthe SE to read the ACL and the widget manager loads up the widget accessrecords in the main memory.

The widget execution stage may include a widget access context object.The widget access context object may be a runtime object which mayprovide a simple method to check permissions for the widget execution.The widget access records may be used to populate the widget accesscontext object. The widget access context object may internally maintaina simple Map (key-value pair) of permissions. The widget access contextobject may be used by all access aware resource managers to check thegiven widget's permissions. The resource managers may internally decidewhether the given resource needs to be checked against policy or not.

In some exemplary and non limiting embodiments the widget descriptor maybe a central place where all the access rights for a plurality ofresources may be defined. In an example, the plurality of resources mayinclude the action, the screen, at least one URL and SE/Applets. In anexemplary embodiment, construction of a widget may require availingdifferent resources like actions, applets, screens and the like. Inexemplary but non limiting embodiments, action may include that themClient platform may provide 4 different types of actions i.e. systemactions, core/infrastructure actions, wallet actions and any otherissuer specific custom actions. In an example, actions may be a part ofmClient platform and hence are shared across widgets. In an example, anywidget may access core and wallet actions. In an example, the widget bydefault may not be allowed to access any system actions. The widget mayneed to specify all the system actions required by it in the descriptor.In an example, the widget may specify any widget specific action thatmay be an action meant for only that widget in particular. In exemplarybut non limiting embodiments, every widget may be required to have anindividual set of screens and content files that may not reuse thescreens and content resources from any other widget. In exemplary butnon limiting embodiments, a widget may be permitted to make a connectionto a plurality of URL's. In exemplary but non limiting embodiments, thewidget may interface with a plurality of applets.

Widget Approval Process—FIG. 22 illustrates a widget approval process.

The widget approval process as illustrated in FIG. 22 may involve a user2202, a widget certification manager 2204, a widget repository manager2208, a static verification utility 2210 and a binary package generator2212. The user 2202 may select a widget bundle 2214 from various widgetbundles available to the user. In an example, the widget bundle 2214 maycontain an application.xml file, a content.xml file, a theme.xml fileand a widget descriptor (these files may be same as described above).The widget bundle 2214 may be sent to the widget certification manager2204 by the user 2202. The widget certification manager 2204 may also bethe widget approval manager. The widget certification manager 2204 maybe the main controller class driving approval process. The widgetcertification manager 2204 may send the widget bundle 2214 to the widgetrepository manager 2208, the widget repository manager 2208 may managedetails about all the certified and uncertified widgets with propertimestamp details. The widget repository manager 2208 may have access toa widget repository 2218. The widget repository 2218 may contain all thecertified and uncertified widgets with proper timestamp details. Thisinformation may help for audit trailing and for static verification. Thewidget certification manager 2204 may send the widget bundle 2214 to thestatic verification utility 2210. The static verification utility 2210may validate the widget bundle 2214 against static rules. For example,if a client may have already declared client Check CardStatus as one ofits custom actions, then any other issuer then the client itself may notbe allowed to use this particular action. The static verificationutility 2210 may check the widget bundle 2214 in the widget repository2218 for any accidental/incorrect reference to assets that may be ownedby other widgets. The static verification utility 2210 may automate apart of the access verification process, but manual verifications maystill be required. The widget certification manager 2204 may receive thewidget bundle 2214 verified against static rules from the staticverification utility 2210. The widget certification manager 2204 maysend the widget bundle 2214 to the binary package generator 2212. Thebinary package generator 2212 may generates the final binary packagecorresponding to the widget bundle 2214. The binary package may be readyfor over-the-air download and delivery. The binary package generator2212 may send a binary widget file 2220 to the user 2202.

Widget Environment Aspects—Few exemplary nut non-limiting environmentalassumptions and dependencies for the wallet software are described here.The environmental assumptions and dependencies may include a securecommunication, a secure main memory, a secure application environment, areliable API, a SE access management, a protected database, and areliable rush registry. In an example, the wallet software may assumethat the underlying platform and the APIs offer reliable and secure HTTPand HTTPS connections for Secure Communication. The native platform maymanage a root certificate store for the secure sockets layer (SSL)verification. In an example, the wallet software may assume that themain memory allocated to the wallet software by the native OS may beprotected from other applications (apps) and may be secure to holdsensitive data elements for transitional scope. The wallet software mayassume that the wallet binaries may be stored and maintained securely bythe application environment on the phone to provide a secure applicationenvironment. The app signature is verified by the environment usingtrusted content certificates. The Environment may also impose strictsigning and access control rules on all apps downloaded on the phone.The wallet software may assume that all Java or similar APIs may besecured by the underlying environment and may be trusted for processingsensitive data for a reliable API. Also, the APIs may be accesscontrolled by the environment. The wallet software may assume that theaccess to secure element may be managed by the environmentinfrastructure (for example, JSR 177) and the accesses to various secureelement services may be privileged. The privilege management may beimplemented by the environment based on the app signatures. The walletsoftware may assume that the environment may restrict access topersistent data to the owner application only and the applications maynot access or modify each other's data. The wallet software may assumethat the environment may provide a reliable application push registry,where the events for the wallet app are passed on to the wallet reliably(without corruption or intrusion).

The methods and systems described herein of multi-domain ecosystemsecure personalized transactions includes a computer readable mediumcontaining program instructions. The execution of the programinstructions by one or more processors of a computer system may causethe one or more processors to carry out the steps that includeconfiguring one or more widget modules for execution via a walletcontainer on a mobile device. The one or more widget modules maycomprise a service group of a service provider. In an example, thewallet container may operate in cooperation with an enabling tier of amulti-tier platform for providing secure personalized transactions toprovide the one or more widget modules exclusive access to a workflow ofthe service provider. In an example, the wallet container may interpretthe widget module in a runtime environment operating on the mobiledevice to provide the exclusive access. In an example, service providermay be a widget issuer. In an example, one or more of the widget modulesissued by the widget issuer may be provided exclusive access to aworkflow of the widget issuer. In an example, the wallet container mayoperate in cooperation with an enabling tier of a multi-tier platformfor providing secure personalized transactions to provide the exclusiveaccess. In an example, the one or more of the widget modules issued bythe widget issuer may be provided exclusive access to a user interfaceof the widget issuer. In an example, the wallet container may operate incooperation with an enabling tier of a multi-tier platform for providingsecure personalized transactions to provide the exclusive access. In anexample, the one or more of the widget modules issued by the widgetissuer may be prevented from accessing a workflow of another widgetissuer. In an example, the wallet container may operate in cooperationwith an enabling tier of a multi-tier platform for providing securepersonalized transactions to prevent accessing a workflow of anotherwidget issuer. In an example, the one or more of the widget modulesissued by the widget issuer may be prevented from accessing a userinterface of another widget issuer. In an example, the wallet containermay operate in cooperation with an enabling tier of a multi-tierplatform for providing secure personalized transactions to preventaccessing a workflow of another widget issuer.

A multi-domain ecosystem for secure personalized transactions mayinclude various components including server, client, and other types ofcomponents. Client components may include various software programs,applications, applets, data sets, interfaces, menus, and the like thatmay be described herein or elsewhere. In general client functionalitymay be derived from various wallets, widgets, applets, containers, andthe like that reside and/or are executable on a client device, such as amobile phone, smart phone, tablet, universal electronic transactionfacility, laptop, notebook, netbook, kiosk, appliance, utility device,automobile, plane, and any other electronic or electro-mechanicaldevice.

In general the methods and systems described herein includes clientsoftware referred to herein and elsewhere as mClient, container, and thelike which acts as an enabling infrastructure for rapid mobileapplication development. It provides a container-based approach tosupporting a multi-tenant application architecture. The mClientcontainer provides a phone specific run-time environment for the walletand widgets. The container handles complexity related to applicationexecution, transactional security, reliability, and the like includingdevice specific implementations. An mClient container may be based onAPIs, such as device specific APIs. The container runtime environmentfacilitates generating a native application screen from widgetdescriptors. This facilitates ensuring that a touch screen button lookslike a native ANDROID, BLACKBERRY, IPHONE, or other device button on therespective devices. The wallet application may be similar to a widget inthat it may also be interpreted and executed by the mClient runtimefunctionality. However, as described herein a wallet will haveprivileged control over the application to maintain a highly secure andseparated environment for use and access to wallet information that mayinclude user account, personal, and transaction-related content, amongother things. A wall may also be defined to provide functionality thatis domain specific (e.g. financial, retail, healthcare, government, andthe like).

With reference to FIG. 23, there is illustrated an exemplary andnon-limiting embodiment of a widget architecture that may facilitateisolating distinct service provider widgets within a wallet container ona client device in a multi-domain ecosystem for secure personalizedtransactions. A client container 2302 may operate as a client runtimecomponent for facilitating execution of mobile applications on a clientdevice, such as a mobile telephone, computer, PDA, laptop and the likein a multidomain ecosystem for secure personalized transactions. Asillustrated, one or more wallets 2304 may comprise applications and datathat may provide an overall user digital wallet experience and may beaccessed through one or more secure entry points managed by thecontainer 2302 for one or more widgets 2306. One or more widgets 2306may comprise service groups developed and/or issued by third partyservice providers. In accordance with exemplary embodiments, the widgets2306 may run within the secure environment of the client container 2302in an independent manner isolated from the one or more wallets 2304.When implemented in accordance with exemplary embodiments as discreteunits of executable code, widgets may execute and operate in a mannerseparate and distinct from the operation of other widgets, wallets andapplets or, conversely, may operate in a cooperative manner with one ormore other wallets, widgets and/or applets to perform securetransactions.

As illustrated, the client container 2302 may interface with an APIlayer 2308 comprising one or more device specific APIs. The API layer2308 may support various and/or popular device environments. A phoneindependent API layer 2310 may ensure that applications, including, butnot limited to wallets, widgets and applets, such as those developedusing a Mobile Transaction Platform (MTP) software development kit(SDK), run across all supported MTP handsets. In accordance withexemplary embodiments, both the wallets 2304 and the widgets 2306 may benearly identical in structure (e.g., screens, JavaScript, & CSS Styles),except that the wallets 2304 may have access to a wider set ofprivileged APIs within the API layer 2308 than do the widgets 2306. Insome instances, wallets 2304 may be capable of robust user configurationand personalization particularly as compared to widgets in general andservice provider derived widgets in particular. As a result, in someinstances, wallets may be provided with increased access to APIsexerting control over the functionality of a client device.

In accordance with exemplary and non-limiting embodiments, when invoked,a wallet 2304 may take application control until a widget 2306 entrypoint is selected (e.g. by a user, wallet 2304, container 2302, externalservice, and the like). User selection of a widget 2306 may be via acard image, a menu option, and the like that may be available to theuser through the wallet 2304 interface. In response to such selection,the selected widget may be launched within a runtime secure environment(e.g. an environment provided by the container 2302) comprising thewallet 2304 and the execution of the wallet 2304 may be suspended.

Once launched, the widget 2306 may operate to facilitate securetransactions between, for example, a wallet 2304 of a mobile clientdevice upon which the widget 2306 is executing and a service provider,such as the service provider who issued the widget 2306. In such aninstance, a widget 2306 issued by a service provider may be grantedexclusive access to the workflow of the issuing service provider,resources on the mobile device, such as wallet resources, secure elementresources, as well as to user interfaces of the client device. Likewise,a widget 2306 issued by a service provider may be denied access to theworkflows, wallet elements, and the like of other service providers aswell as to certain mobile device resources, such as user interfaces ofthe client device.

As separately executable units of code, widgets 2306 may be effectivelyisolated one from the other via the execution separation functionsavailable from a mobile operating system and/or by aspects of themClient including the runtime environment provided by a container. Inaddition, widgets 2306 may be developed by a service provider (e.g. anissuer of instruments, and the like) who may configure the widget toincorporate provider-specific security elements that may make it hardfor other service-provider developed widgets from accessing itsresources, workflows, and the like. A mobile transaction platform thatmay include such widgets, containers, wallets, service provider software(including without limitation various aspects of a wallet service centerdescribed later herein), and the like may enforce strong and diversesecurity in all such aspects so that, for example, widgets developed byservice provider A may not access resources (e.g. server-based) ofservice provider B. Such strong security may be important for a varietyof reasons including keeping domain-specific information separate andconfidential from other domains that the user may interact with throughthe user's mobile device (e.g. financial domains, health domain, legaldomains, business domains, personal domains, identity domains, and thelike).

The methods and systems described herein of multi-domain ecosystemsecure personalized transactions includes a computer readable mediumcontaining program instructions. The execution of the programinstructions by one or more processors of a computer system may causethe one or more processors to carry out the steps that may includeconfiguring one or more widget modules in a wallet container on a mobiledevice. The wallet container may comprise one or more wallet modules.The steps carried out by computer readable medium may further include,limiting access by the one or more widget modules to the set of elementsconsisting of the one or more wallet modules, the mobile device, one ormore client applications. The steps may further include, providingaccess to the one or more widget modules of at least one of anissuer-specific security domain and widget-specific issuer securitydomain.

The methods and systems described herein of multi-domain ecosystemsecure personalized transactions includes a method that includesproviding a container runtime environment on a mobile device. The methodmay further include accessing a mobile-device resident widget module todetermine access constraints associated with the widget, In an example,the access constraints may pertain to electronic wallet access, deviceresource access, device resident ecosystem applications, networkresources accessible by the mobile device, issuer-specific securitydomains, and widget-specific security domains. The method may furtherinclude, operating at least one of the widget modules through acontainer to enforce access constraints associated with the widgetmodule. The method may further include facilitating access by the widgetmodule to at least one of issuer-specific security domains andwidget-specific security domains associated with the widget module. Inan example, enforcing widget module access constraints may includepreventing access to electronic wallet resources on the mobile device.In an example, enforcing widget module access constraints may includepreventing access by a first widget to a wallet associated with a secondwidget. In an example, enforcing widget module access constraints mayinclude preventing access by a widget to a wallet on the mobile devicebased on a state of the wallet. The state of the wallet may include anactive state during which access by the widget may be allowed and aninactive state during which access by the widget may be prevented. In anexample, facilitating access to a security domain may comprise allowingaccess to a digital wallet on the mobile device that may share asecurity domain with the widget module. In an example, facilitatingaccess to a security domain may comprise allowing access to networkresources of an issuer that may share a security domain with the widgetmodule.

Various aspects of a mobile transaction platform, includingclient-specific aspects, for isolating and limiting access amongdomain-specific resources are described herein above. In addition tothese important security and resource access limiting functions,application-related limits on access to wallets, device resources,applications, network resources and the like may also be facilitated bythe methods and systems described herein including development,deployment, execution, and transaction methods and systems.

In accordance with exemplary embodiments, a container may implement oneor more triggers to control or otherwise limit access to one or morewallets, devices, client applications and network resources. Limits onaccess may be based on location (e.g. venue, location, network type,provider accessibility, wallet state, spending limit, credit balance,credit score, and the like). Examples of these and other limits onwidget access to resources are described here. A wallet may be managedin a personalized way by a merchant so that, for example, when oneenters a venue one may not be given the option of using a widget thatenables a form of payment that is not accepted at the venue. In anothernon-limiting example, access to various widgets may be enhanced by atrigger or triggers when a user travels outside the U.S. In accordancewith yet other examples, a trigger based on credit card balance/limitmay further enhance the operation of one or more widgets including, butnot limited to, access by one or more widgets to client applications andnetwork resources. In an exemplary embodiment, if a wallet is notactive, such as might occur when the client device on which thecontainer and wallet or wallets are resident is shut off or when a userhas deactivated a wallet (e.g. for enhanced security of the walletresources), an associated widget may be limited from accessing clientdevice and network resources, wallet content, and the like normallycontrolled by or accessed through the wallet.

The methods and systems described herein of multi-domain ecosystemsecure personalized transactions includes a method that includesconfiguring a widget at least partially by a networked server to provideaccess to an issuer-specific service group. The method may furtherinclude receiving in a secure wallet container operating on a clientdevice, a request from the networked server to deploy the configuredwidget. The method may further include determining widget isolationrequirements for operating the widget on the client device. The methodmay further include installing the configured widget based on theisolation requirements on the mobile device through the secure walletcontainer.

The methods and systems described herein of multi-domain ecosystemsecure personalized transactions includes a computer readable mediumcontaining program instructions. The execution of the programinstructions by one or more processors of a computer system may causethe one or more processors to carry out the steps that may includedeploying on a client device a first issuer-specific widget tofacilitate a first trust model-based secure personalized transaction.The steps may further include deploying on the client device a secondissuer-specific widget to facilitate a second trust model-based securepersonalized transaction. In an example, the first issuer-specificwidget and the second issuer-specific widget may be deployed in a walletcontainer. In an example, at least one of the first trust model and thesecond trust model may be one of a delegated trust model, direct trustmodel, and brokered trust model. In an example, at least one of thefirst trust model-based secure personalized transaction and the secondtrust model-based secure personalized transaction maybe facilitatedbased upon a trigger. In an example, the trigger may correspond to amonetary value of at least one of the first trust model-based securepersonalized transaction and the second trust model-based securepersonalized transaction.

In accordance with exemplary and non-limiting embodiments, after awidget 2306 has been developed, such as by an issuer who may be aservice provider, the operation of the widget 2306 may be verified andapproved and may be stored on a server for subsequent downloading to aclient device or to more than one client devices in the case of anon-user-specific widget 2306. As noted, widgets 2306 can vary in naturedepending upon the functional task to which they are directed. As aresult various types of widgets 2306 include, but are not limited to,wallet-specific widgets, user-wallet-specific widgets, offering-specificwidgets, marketing-specific widgets, audit-specific widgets,multi-purpose widgets and the like. After a successful installation onthe client device, the widget 2306 is ready for execution.

In an exemplary embodiment, once a widget 2306 is installed,confirmation in the form of an acknowledgement may be sent to the serverfrom whence the widget 2306 was downloaded. Receipt by the server of theacknowledgement may result in the server storing information regardingthe successful download of a widget 2306. For example, the server maystore information indicating a version number of the downloaded andinstalled widget 2306. Such information may be used, for example, toascertain the existence of a more recent version of a widget 2306 fordownload than has been previously downloaded. In some exemplaryembodiments, the successful download of a widget 2306 at a client devicemay result in a confirmatory visual indicia, such as a displayed textmessage, being displayed to a user of the client device. Also, a usermay be provided with a means for accepting the downloaded widgetincluding, for example, performing a non-binding trial of the widget. Aresult of such a widget installation may include placing a new icon in amobile transaction platform user interface of the client device. The newicon may be differentiated from other icons temporarily to facilitateindicating that it is newer that the others. Alternatively, a new widgetmay have no visually detectable difference to the user.

Deployed or installed widget integrity may be provided by a container(e.g. mClient container), which is described herein. One technique forensuring widget integrity is to ensure that the widget and/or its dataare unaltered. In accordance with an exemplary embodiment, in order tomake sure that neither the widget 2306 or its data has not been tamperedwith during the time between downloading of the widget 2306 and itsexecution, a hash may be employed. A hash may be computed of theapplication code comprising the widget 2306 and the hash verified when awidget is installed, accessed for execution, accessed during an audit ofclient mobile transaction platform resources, loaded for execution (e.g.in an cClient container runtime environment), and the like. In anexample of verifying a hash when a widget is loaded for execution, thewidget 2306 may start its function once it passes through a hashverification at its load time.

An mClient container runtime environment may also facilitate strongisolation of widgets so that distinct widgets cannot impact other widgetresources, alter such resources or widget application code, and the likethat may impact widget integrity.

As noted above, widgets 2306 may provide one or more secure entry pointsvia which wallet applications may interact with the issuer of the widget2306. In exemplary embodiments, the issuer of a widget 2306 may also bea service provider whose services are enabled, either in whole or inpart, by use of the issued widget 2306 by a user. In an exemplary andnon-limiting embodiment, one or more widgets 2306 may act in concert toperform secure personalized transactions with varying degrees of trust.Specifically, different widgets 2306 may be deployed to facilitatesecure personalized transactions in accordance with varying trustmodels, including among others direct, indirect, brokered, andthird-party secured trust models for transaction execution.

In accordance with exemplary and non-limiting embodiments, the use ofmore than one trust model may reflect differences in the environment inwhich the client device and associated widgets 2306 are deployed. Asnoted elsewhere herein, wallet and widget issuers may select one or moretrust models when configuring elements of an ecosystem. For example, anissuer, perhaps comprising a service provider, may deploy a first widget2306 to perform secure banking transactions over the air wherein thetransactions have a first level of trust. The issuer may further, forexample, deploy a second widget to perform secure banking transactionsat a point of sale (POS) kiosk wherein the transactions have a secondhigher level of trust owing to the client devices proximity to the kioskand/or access to independent verification of the user of the device.Either or both of these widgets may be deployed to a single clientdevice and the selection of a widget for execution may be performed bythe wallet 2304, such as based on the nature of the transaction asdescribed, the security of the available OTA network, and the like.

In accordance with other exemplary and non-limiting embodiments, widgetdeployment may be dependent on a variable. For example, an issuer mayconfigure a plurality of widgets 2306 each operating with a trust modelthat is financial transaction amount dependent. For example, a widgetrequiring a relatively low level of trust may be deployed for financialtransactions involving less than fifty dollars while a widget requiringa relatively high level of trust may be deployed for financialtransactions involving more than fifty dollars.

The methods and systems described herein of multi-domain ecosystemsecure personalized transactions includes a method that includesreceiving an alert with a multi-domain secure wallet container at amobile device that an updated version of an existing widget that isdeployed on the mobile device is available. The method may furtherinclude confirming that the update is an update of a existing widgetthat is deployed on the mobile device. The method may further includeconfiguring the wallet container to receive the updated widget. Themethod may further include receiving the updated widget with the walletcontainer. The method may further include dispositioning the existingwidget to prevent further use of the widget. The method may furtherinclude storing the updated widget on the mobile device.

The methods and systems described herein of multi-domain ecosystemsecure personalized transactions includes a method that includesquerying a server with a multi-domain wallet container operating on amobile device for the existence of an updated widget. The method mayfurther include receiving information from the server indicative of theavailability of the updated widget. The method may further includerequesting the updated widget. The method may further include receivingthe updated widget at the mobile device. The method may further includedispositioning an existing widget that the updated widget supersedes toprevent further use of the existing widget. The method may additionallyinclude storing the updated widget on the mobile device. In an example,querying the server may be performed at predefined time intervals. In anexample, querying the server may be performed in response to theexecution of a widget on the client device. The method may furtherinclude sending a confirmation of storing the updated widget to theserver.

The methods and systems described herein of multi-domain ecosystemsecure personalized transactions includes a method that includesreceiving a query from a mobile device for the existence of an updatedwidget. The method may further include transmitting informationindicative of the availability of the updated widget to the mobiledevice. The method may further include receiving a request for theupdated widget from the mobile device. The method may further includetransmitting the updated widget to the mobile device. In an example, thequery may be received at predefined time intervals. In an embodiment,the query may be received in response to the execution of a widget onthe client device. The method may further include receiving aconfirmation of storing the updated widget.

In accordance with exemplary and non-limiting embodiments, widgets 2306stored and capable of running within the secure environment of theclient container 2302 may be updated for any of a variety of purposes(e.g. periodically, such as weekly, to provide current pricing oroffers, increase a spending limit, in response to a user request, toimprove security, to add access to a different trust model, and thelike). In one exemplary embodiment, after reviewing and publishing thewidget 2306, a widget provider may create and issue an alert indicatingthe availability of a new or newer version of one or more widgets 2306.

In one exemplary embodiment, the alert may be issued to only thoseclient devices that have previously successfully downloaded (orotherwise have installed) a version of the widget 2306 to be updated. Insuch an instance, a message may be sent to the client device to informthe user that an updated widget 2306 is available for download andprovide the user with the choice to download the updated widget 2306.

In another exemplary embodiment, a configuration file, such as might bestored on a wallet server, may contain user customizable informationdefining the manner in which the user desires for widget updates tooccur. For example, a user may customize an associated configurationfile to indicate that each time a new version of a previously downloadedwidget 2306 becomes available the newer version of the widget is to bedownloaded. Conversely, a client device may periodically, such as atstart-up or prior to engaging in a commercial transaction, query thewallet server to downloaded newer versions of previously installedwidgets 2306. In other embodiments, the configuration file may becustomized by or for the widget issuer, a related wallet issuer, and thelike.

In accordance with other exemplary embodiments, a widget 2306 itself maybe informed through a workflow of the widget issuer that an update isavailable and based on aspects of the updated widget (e.g. a securityupdate), the installed widget might take an action (e.g. disable itself,notify the user that it is no longer current, update portions of itselfrather than replacing it with a new widget, etc). Another updatemechanism may be realized through operation of the wallet. For example,a wallet may be updated and, as a result, may indicate that a widget isout of date, triggering various widget actions (e.g., notify the user,automatically update, request an update, and the like)

Methods and systems of providing a multi-tier mobile transactionplatform for secure personalized transactions in a multi-domainecosystem may include a method of configuring at least one mobiletransaction platform-specific application programming interface on amobile device for facilitating access to mobile device secure resourcesby a wallet container executing on the mobile device. The method mayfurther include disposing a plurality of distinct wallet containers in amemory of the mobile device, wherein each wallet container interfaceswith mobile device secure resources via the at least one applicationprogramming interface. The method may further include the at least oneprogramming application interface enforcing wallet container isolationvia security criteria of a three layer mobile transaction platform. Thethree layers may include a personalization layer, a service layer, andan enabling layer.

The methods and systems described herein of multi-domain ecosystemsecure personalized transactions includes a wallet container operable ona client device. The wallet container may include a runtime componentfor facilitating management of widgets, wallets, security, and access toa secure element. The wallet container may further include an API-basedinterface for accessing business specific services provided by thewidgets and for accessing client device specific resources. The walletcontainer may facilitate operation of a plurality of distinct walletsand distinct widgets for accessing at least one of the plurality ofdistinct wallets.

The methods and systems described herein of multi-domain ecosystemsecure personalized transactions includes a computer readable mediumcontaining program instructions. The execution of the programinstructions by one or more processors of a computer system causes theone or more processors to carry out the steps that may includeconfiguring one or more widget modules in a wallet container on a mobiledevice. The wallet container may comprise one or more wallet modules.The steps may further include facilitating access to at least one of thewallet modules by an issuer of at least one of the widgets.

A wallet container 2302 may form a client-resident portion of a mobiletransaction platform (MTP) enabling infrastructure. As such, a containermay provide a cross platform service execution environment for clientdevices, such as mobile handsets, and the like.

As noted above, the methods and systems described herein generallyinclude client software referred to herein and elsewhere as mClient,container, runtime environment, and the like, which acts as an enablinginfrastructure for rapid mobile application development. It provides acontainer-based approach to supporting a multi-tenant applicationarchitecture. The mClient container provides a phone specific run-timeenvironment for the wallet and widgets. The container handles complexityrelated to application execution, transactional security, reliability,and the like including device specific implementations. An mClientcontainer may be based on APIs, such as device specific APIs.

As illustrated, one or more wallets 2304 may comprise applications anddata that may provide an overall user digital wallet experience and maybe accessed through one or more secure entry points managed by thecontainer 2302 for one or more widgets 2306. One or more widgets 2306may comprise service groups developed and/or issued by third partyservice providers. In accordance with exemplary embodiments, the widgets2306 may run within the secure environment of the client container 2302in an independent manner isolated from the one or more wallets 2304.When implemented in accordance with exemplary embodiments as discreteunits of executable code, widgets may execute and operate in a mannerseparate and distinct from the operation of other widgets, wallets andapplets or, conversely, may operate in a cooperative manner with one ormore other wallets, widgets and/or applets to perform securetransactions.

Referring to FIG. 24, which depicts a high level architecture view of aclient-device container (e.g. mClient), detailed exemplary aspects of acontainer are presented. A container 2402 may facilitate user interfacerendering and navigation; workflow execution; access to developer APIs;and may further include application container infrastructure. Acontainer 2402 may facilitate widget management 2430 with a widgetlifecycle manager capability 2432, an access controller 2434, and thelike while integrating widget and wallet context. A container mayfurther include a user interface framework 2412 that may include a UIengine 2414, screens and layout 2418, styles 2420, UI elements 2422, andthe like. A container as depicted in FIG. 24 may further include aworkflow framework 2424 that may leverage a script engine 2428, servicemanager, and may include javascript functions, scriptable objects, andthe like. Other container capabilities may include databasefunctionality 2440, such as find/search, insert/update, delete, and thelike. Communications 2438 may be facilitated by a container for sending(e.g. sms, HTTP/S), encoding, decoding, attaching, detaching, and thelike. Near Field Communication functionality 2448 may also be supportedby the container. A container may further facilitate security throughinteraction with a secure element or other secure framework as may beprovided by the client, including applet installation, removal, securechannel setup, APDU exchange, and the like. Further security featuresprovided in association with a container may include cryptography 2442(e.g. AES, 3DES, RSA, and the like), signing, verification (e.g. HMAC),hash computation and verification (e.g. SHA/1), key generation (e.g.PKCS#5), random number functions (e.g. PRNG), and the like. A containermay also interact with client resources, such as a phone function tofacilitate making calls, reaching and/or managing contacts, interactionwith calendars to facilitate event-based functions, location-basedservices, and the like.

The methods and systems described herein of multi-domain ecosystemsecure personalized transactions includes a method of managing aplurality of transaction protocols that includes disposing a walletmodule in a memory of a client device. The method may further includedisposing a wallet companion applet in the memory. The method mayfurther include executing the wallet companion applet in associationwith a secure personalized transaction being conducted over an ecosystemin which the client device is deployed to manage access to selectedcontent of a secure element associated with the client device. In anexample, the wallet companion applet may use the accessed secure elementcontent to facilitate authenticating access to the wallet module toperform the transaction.

The methods and systems described herein of multi-domain ecosystemsecure personalized transactions includes a computer readable mediumcontaining program instructions. The execution of the programinstructions by one or more processors of a computer system causes theone or more processors to carry out the steps that may includeconfiguring one or more widget modules in a wallet container on a mobiledevice. The wallet container may include one or more wallet modules. Thesteps may further include configuring at least one applet to execute inconjunction with at least one wallet module to facilitate management ofs plurality of transaction protocols.

In accordance with an exemplary and non-limiting embodiment, a SecureElement (SE) may be utilized as a secure data storage device at theclient-end, such as for mobile devices including standard smart phones.In exemplary and non-limiting embodiments, an SE may be mounted in oneor more options including an UICC, a removable MicroSD, embedded in thephone hardware, or mounted as an add-on back plate or in accordance withsome other exemplary interface method.

In accordance with exemplary and non-limiting embodiments, a deviceapplication, such as the wallet, if permitted by the controlling and/orissuing entity and rest of the ecosystem, may communicate with the SE.The mode and method of communication may vary depending on the type ofthe SE from among the options mentioned above.

In some exemplary embodiments depending on the security model used forcontrolling the SE, the wallet may be permitted to install, load andmanage applets in the SE. It may also be, or only be, allowed tocommunicate with pre-installed applets through standard methods ofapplet communication including sending and receiving applicationprotocol data units (APDUs).

The wallet companion applet, as the name suggests, may have a primaryfunction of working work with a digital wallet (e.g. a walletapplication on a client device), and may be used by the client device tocarry out a number of tasks including, but not limited to, storing ofimportant and/or critical data required by one or more wallets, or forany operation that is transacted using the wallet, or controlling thefunctioning of other applets designed to facilitate such a controlthrough a sharable interface and/or through the communication of APDUsdesigned and implemented for the purpose.

In accordance with various exemplary and non-limiting embodiments, thewallet application, in coordination with the wallet companion applet,may manage, influence and/or control the other applets so enabled, formanaging their transaction protocol.

Referring to FIG. 24A, which depicts a detailed view of mobile devicecontents, mobile device applications and secure element features arepresented. Mobile device applications may include MTP applications asdescribed herein (e.g. containers, wallets, widgets, and the like).Secure element content may include security domains 2450, walletcompanion applets 2452, and wallet companion domains 2454. As depictedin FIG. 24A, secure elements may be configured in a variety of physicaldevices including UICCs, micro Sds, sleeves, add-ons, embedded elements,and the like.

A wallet companion domain 2454 may expand on a companion appletdescribed herein to encompass an entire security domain for companionapplets and features. A wallet companion domain 2454 or security domainmay facilitate loading, installing, managing and deleting multipleapplets in the secure element as a group associated with the securitydomain. Each security domain may have unique security keys that may beused by the mobile transaction platform to perform operations on thegroup of applets in the secure element. A wallet companion domain 2454may be managed by adapting current technology secure element keysecurity features to enable separate security keys for the mobiletransaction platform to manage the contents of the wallet companiondomain 2454 in the secure element.

FIG. 24B depicts various features, and control and data flows associatedwith a wallet companion applet. The wallet companion applet in thesecure element may provide features such as secure storage,authentication, ID management, activation control, store/get functions,crypto functions, key storage and generation functions, PIN control, andthe like. The wallet companion applet may provide a wallet interfacefunction that may facilitate managing access to the wallet by otherapplets, external mobile transaction platform participants, and thelike. The wallet companion applet may include an applet interface foraccessing the applet in the secure element. The wallet companion appletmay facilitate secure interaction with trusted security manager (TSM)servers, mobile transaction platform (MTP) servers, and otherparticipants in a multi-domain ecosystem for secure personalizedtransactions.

The methods and systems described herein of multi-domain ecosystemsecure personalized transactions includes a method that includesdisposing a wallet module in a memory of a client device. The method mayfurther include disposing a wallet companion applet in a secure elementof the memory. The method may further include executing the walletcompanion applet to facilitate access to one or more additional walletapplets. In an example, the access may be facilitated through ashareable interface to mobile wallet functions. In an example, thewallet companion applet may enable at least two of couponing, securityand payment.

The methods and systems described herein of multi-domain ecosystemsecure personalized transactions includes a method that includesdisposing a container in a memory of a client device. The method mayfurther include disposing a container companion applet in a secureelement of the memory. The method may further include executing thecontainer companion applet to facilitate access to one or moreadditional container companion applets. In an example, the access may befacilitated through a shareable interface to mobile wallet functions andmobile widget functions accessible through the container.

The methods and systems described herein of multi-domain ecosystemsecure personalized transactions includes a platform operable on aclient device that includes a runtime component that may configure atleast one tokenized widget. In an example, the at least one tokenizedwidget may facilitate at least one transaction in a multi-domainecosystem for secure personalized transactions.

The methods and systems described herein of multi-domain ecosystemsecure personalized transactions includes a platform operable on aclient device that includes a runtime component that may configure atleast one service provider widget in a multi-domain ecosystem for securepersonalized transactions.

The methods and systems described herein of multi-domain ecosystemsecure personalized transactions includes a platform operable on aclient device that includes a runtime component that may configure atleast one client container in a multi-domain ecosystem for securepersonalized transactions

The methods and systems described herein of multi-domain ecosystemsecure personalized transactions includes a platform operable on aclient device that includes a runtime component that may secure accountinformation for a plurality of accounts in a wallet.

The methods and systems described herein of multi-domain ecosystemsecure personalized transactions includes a platform operable on aclient device that includes a runtime component that may provide secureaccess to a mobile wallet by a plurality of service providers

A mobile wallet for integrating offers with transactions between anexternal service provide and the mobile wallet in a multi-domainecosystem for secure personalized transactions may include amulti-domain digital wallet operable on a mobile device, wherein thedigital wallet comprises accounts from at least two distinct serviceproviders. A runtime container for executing widgets that attempt toaccess the digital wallet may also be included. In addition, a pluralityof mobile offer management widgets, operable in the runtime containerthat interface with distinct mobile offer domains by communicating withexternal service providers may be included. Lastly a mobile transactioncapability provided by cooperative operation of the runtime container,the multi-domain digital wallet, and at least a portion of the pluralityof mobile offer management widgets may also be included.

In accordance with exemplary and non-limiting embodiments, the presentdisclosure provides coupon applets that may be a part of a suite ofapplets developed to facilitate a richer, and a more convenient retailshopping experience that may be aimed to enable offer-related flowsbetween a mobile wallet application and service provider, such as inassociation with a point-of-sale (PoS) terminal.

The coupon applets may support near-field communication (NFC)transactions in the form of a single tap as well as a multi-tap userexperience. The one or more versions of the coupon applets may supportfeatures for attaching multiple coupons to a single transaction,presenting the attached coupons in the transaction (e.g. to a PoSterminal), communicating redemption status, managing offers, matchingoffers to wallets, seeking offers from service providers (e.g. through aservice-provider widget), and the like. To facilitate ease ofdevelopment and integration, the coupon applets may include at least twointerface APIs. One API may be used for interfacing one or more offers(e.g. coupons) with a digital wallet application (e.g., a mobile walletclient as described herein), and another API may be used for interfacingthe coupon with the service provider, such as through a PoS terminal.The service provider API may be facilitate access by a PoS terminal tothe coupon applet for querying coupons, updating the coupon redemptionstatus, and the like.

The one or more versions of the coupon applet may enable a straightforward flow by which a user can present coupons downloaded from one ormore sources in a transaction with a service provider, such as through aPoS terminal, usually through a mobile phone with a Secure Element (SE).

FIG. 25 illustrates an offer or coupon-related transaction flow diagram.Entities participating in the transaction may include a user 2502, awallet client 2504, a coupon applet 2508, and a PoS terminal 2510. In anexample, the user may contact various coupon services, browse coupons,and decide which coupons to use for a particular purchase. The user mayperform these operations via a mobile wallet application that may beassociated with the wallet client 2504. At 2512, the wallet client 2504may present the stored coupons to the user 2502 and at 2514, the user2502 may select the coupons that may be attached.

Further, a phase 1 (also referred to herein as a pre-transaction setupphase) may be initiated. As shown in FIG. 25, during the phase 25, thewallet client 2504 may attach the selected coupons to the applet andthereby, the wallet client 2504 may indicate that the transaction canbegin.

After phase 1, phase 2 (also referred to herein as a PoS transactionphase) may be initiated. During phase 2, the authenticationidentification (e.g. user identity and/or account data from a SecureElement) may be presented to the PoS terminal 2510 to initiate the PoSTransaction Phase. The PoS terminal 2510 then may query the couponapplet 2508 for the attached coupons and the coupon applet 2508 may sendback the data pertaining to the attached coupons in response. This couldtake several queries based on the number of coupons. Once the PoSterminal receives all the coupons, it may process these coupons. Suchprocessing may include validation of coupons, checking applicability,compliance to other business rules to determine applicability of thecoupons, etc. At the end of the processing of this phase, redeemedcoupons may be identified. The status of these coupons may becommunicated to the coupon applet 2508.

After phase 2, phase 3 (also referred to herein as post-transactionquery & clean up) may be initiated. During this phase, the wallet client2504 may query the redemption status if required and reset all thecoupons. The resetting of the coupons may mark the end of phase 3, andreposition the state to the beginning of phase 1.

FIG. 26 illustrates a state machine diagram of the coupon applet duringthe transaction flow according to an example. A state 2602 may indicatea READY FOR UPLOADING COUPONS state, indicating that all coupons fromthe coupon applet may have been reset, and the wallet client can nowupload the coupons selected for this transaction. In an example, asshown in FIG. 26, the applet may remain in the state 2602 if a commandGET APPLET STATUS results in an error. The coupon applet may transit toa next state 2604 on receiving a valid ENABLE TRANSACTION command.

The 2604 state may include a READY FOR COUPON REDEMPTION state,indicating that the wallet client may have attached all the coupons tothe coupon applet's memory, and that the PoS terminal can proceed withthe phase 2 of the transaction. In an example, as shown in FIG. 26, thecoupon applet may remain in the state 2604, if a command READ COUPONSresults in an error. The applet may transit to a next state 2608 onreceiving a valid SET COUPON REDEMPTION STATUS command. As shown in FIG.26, the coupon applet may transit to a next state 2610 on receiving avalid ABORT TRANSACTION command.

The state 2608 may include a TRANSACTION COMPLETED state, indicatingthat the PoS terminal may have completed phase 2 of the transaction andCOUPON REDEMPTION STATUS may have been set. Further, this state 2608 mayindicate that the wallet client may now proceed with phase 3 of thetransaction. The coupon applet may remain in this state till the appletreceives a valid RESET COUPONS command or a valid ABORT TRANSACTIONcommand.

The state 2610 may include a TRANSACTION ABORTED state indicating thatthe PoS terminal transaction (relating to the coupon presentation &redemption) may have been aborted either by the wallet client or the PoSterminal. The coupon applet may remain in this state 2610 till theapplet receives a valid RESET COUPONS command.

In accordance with exemplary and non-limiting embodiments, the presentdisclosure provides commands to support coupon-related functionalitythat may be relevant for the interaction with the PoS terminal. In anexample, these commands may be based on the standard smart card commandand response protocol as defined by ISO/IEC 7816 for all communicationswith the SE. In an example, a table CAT1 may summarize coding of classbytes (CLA) and instruction (INS) bytes.

CLA INS Command ‘00’ ‘A4’ SELECT ‘C0’ ‘01’ GET APPLET STATUS ‘C0’ ‘03’ABORT TRANSACTION ‘C0’ ‘11’ READ COUPONS ‘C0’ ‘41’ SET COUPON REDEMPTIONSTATUS CAT1: Command Summary CLA and INS Command

In an example, the coupon applet may return status bytes that may becoded as per ISO/IEC 7816-4. The applet may return a set of genericstatus bytes shown in table CAT2. The table may list status word SW1,status word SW2 and the meaning associated thereof

SW1 SW2 Meaning ‘90’ ‘00’ Normal processing ‘67’ ‘00’ Wrong length ‘69’‘85’ Conditions of use not satisfied ‘6A’ ‘80’ Incorrect values incommand data ‘6A’ ‘82’ Applet not found ‘6A’ ‘84’ Not enough memory ‘6A’‘86’ Incorrect parameters P1-P2 ‘6D’ ‘00’ Instruction not supported ‘6E’‘00’ Class not supported CAT2: Generic Status Bytes

In an example, the present disclosure may include an ABORT TRANSACTIONcommand that may move the applet from its existing state to thetransaction aborted state. In an example, the ABORT TRANSACTION commandmay be coded according to a table CAT3. The table may list one or morecodes, such as class byte (CLA), instruction byte (INS), parameter P1,parameter P2, and the like. In an example, there may be no data returnedfrom this command.

CAT3: ABORT TRANSACTION Command Message Code Value CLA ‘C0’ INS ‘03’ P1‘00’ P2 ‘00’ Lc ‘00’ data Absent Le ‘00’

Further, a successful execution of the command may be indicated bystatus bytes ‘9000’. The ABORT TRANSACTION command may either return ageneral error condition, such as listed in the table CAT1. In addition,the ABORT TRANSACTION may return one of the following specific error andwarning conditions as listed in the table CAT3.

CAT4: Status Bytes for ABORT TRANSACTION SW1 SW2 Meaning ‘67’ ‘00’ Wronglength ‘69’ ‘85’ Conditions of use not satisfied ‘6A’ ‘86’ Incorrectparameters P1-P2

In an example, a GET APPLET STATUS command may be used to retrieve thecurrent status of the applet. This command may return the current statusof the applet. A table CATS may list codes and corresponding valuesassociated with this command.

CAT5: GET APPLET STATUS command Message Code Value CLA ‘C0’ INS ‘01’ P1‘00’ P2 ‘00’ Lc ‘00’ data Absent Le ‘00’

In response to this command, a data field may be returned. In anexample, the applet status may be returned and coded as 1 byte anddetails of this data field can be found in table CAT17 as describedbelow in the description. Further, a successful execution of the commandmay be indicated by status bytes ‘9000’. The GET APPLET STATUS commandmay either return a general error condition, such as listed in the tableCAT1. In addition, the GET APPLET STATUS command may return one of thefollowing specific error and warning conditions as listed in table CAT6.

CAT6: Status Bytes for GET APPLET STATUS SW1 SW2 Meaning ‘67’ ‘00’ Wronglength ‘6A’ ‘86’ Incorrect parameters P1-P2

In an example, a READ COUPONS command may be used to retrieve coupondata. Further, the READ COUPONS command may be coded in accordance witha table CAT7.

CAT7: READ COUPONS Command Message Code Value CLA ‘C0’ INS ‘11’ P1 ‘00’P2 See table CAT8 Lc ‘00’ data Absent Le ‘00’

The table CAT7 includes a reference control parameter P2 that maycontrol the number of consecutive READ COUPONS command. Further, thereference control parameter P2 may be coded according to the followingtable CATS.

CAT8: READ COUPONS Reference Control Parameter P2 P2 Meaning ‘00’ GetAll Occurrences ‘01’ Get Next Occurrences

In an example, a Read Coupons [Get Next Occurrences] command may berejected if no prior Read Coupons [Get All Occurrences] is receivedwithin the current application session. Further, in response to the READCOUPONS command, multiple occurrences of a coupon data as may be definedin a customer specific coupon specification may be returned.

CAT9: READ COUPONS data Field Tag Len Value ‘E1’ Var Customer-specificcoupon data

Further, a successful execution of this command may be indicated bystatus bytes ‘9000’. The read coupons command may either return ageneral error condition, such as listed in the table CAT10.

CAT10: Status bytes for READ COUPONS SW1 SW2 Meaning ‘63’ ‘10’ More dataavailable ‘67’ ‘00’ Wrong length ‘69’ ‘85’ Conditions of use notsatisfied ‘6A’ ‘86’ Incorrect parameters P1-P2

In an example, a SELECT Command may be used for selecting the couponapplet. The SELECT Command may be coded according to a table CAT11.

CAT11: SELECT Command Message Code Value CLA ‘00’ INS ‘A4’ P1 ‘04’ P2‘00’ Lc Length of AID data AID value Le ‘00’

The “data” field of the command may contain an application identifier(AID) of the coupon applet that may be selected, which may be acustomized per customer requirements.

In response to this command, a returned message may be obtained. Thereturned message may include a data field that may include a filecontrol interface (FCI) and may be coded according to a table CAT12.

CAT12: SELECT Message Response data Field Tag Len Value Presence ‘6F’Var FCI Template M Tag Len Value Presence ‘84’ Var DF Name (Applet AID)M ‘A5’ Var Proprietary Data M Tag Len Value Presence ‘9F07’ 2B C-SAMCoupon Applet - M Version Lx API ID ‘9F09’ 2B C-SAM Coupon Applet - MVersion Lx API Version ‘9F11’ 2B Coupon Format ID M ‘9F13’ 2B CouponFormat M Version

The AID (Tag ‘84’) of the service provider applet may be AID asdescribed herein. The coupon applet API ID (Tag ‘9F07’) may indicate thesupport for the coupon applet API.

Further, the coupon applet API version (Tag ‘9F09’) may be ‘0101’ forthis version. The coupon format ID may be a customer customizable couponformat ID and the coupon format version may be a customer customizablecoupon format version. Further, additional two bytes tags may be listedin the table CAT12.

Further, a successful execution of the SELECT command may be indicatedby status bytes ‘9000’. On occurrence of an error, the SELECT commandmay return a general error condition, such as listed in the table CAT1.In addition, the SELECT command may return one of the following specificerrors and warning conditions as listed in the table CAT13.

CAT13: Status Bytes for SELECT SW1 SW2 Meaning ‘67’ ‘00’ Wrong length‘6A’ ‘80’ Incorrect values in command data ‘6A’ ‘82’ Applet not found‘6A’ ‘86’ Incorrect parameters P1-P2

In an example, the SET COUPON REDEMPTION STATUS Command may be used forsetting the coupon redemption status. On successful execution of thiscommand, the applet status may change to “Transaction Completed”. TheSET COUPON REDEMPTION STATUS Command may be coded according to a tableCAT14.

CAT14: SET COUPON REDEMPTION STATUS Command Message Code Value CLA ‘C0’INS ‘41’ P1 ‘00’ P2 ‘00’ Lc ‘0A’ data Coupon Redemption Status Le ‘00’

The execution of this command may not return any data. Further, asuccessful execution of the SET COUPON REDEMPTION STATUS command may beindicated by status bytes ‘9000’. On occurrence of an error, the SETCOUPON REDEMPTION STATUS command may return a general error condition,such as listed in the table CAT1. In addition, the SET COUPON REDEMPTIONSTATUS command may return one of the following specific errors andwarning conditions as listed in the table CAT15.

CAT15: Status bytes for SET COUPON REDEMPTION STATUS SW1 SW2 Meaning‘67’ ‘00’ Wrong length ‘69’ ‘85’ Conditions of use not satisfied ‘6A’‘86’ Incorrect parameters P1-P2

In accordance with the exemplary and non-limiting embodiments, thepresent disclosure provides details of the interaction between theapplet and the PoS terminal. FIG. 27 illustrates the interaction betweenthe applet 2702 and the PoS terminal 2704.

At 2708, the PoS terminal 2704 may issue the SELECT command to selectthe coupon applet 2702. At 2710, the coupon applet 2702 may respond withthe File Control Information (FCI). At 2712, the PoS terminal 2704 mayissue the GET APPLET STATUS command. At 2714, the coupon applet 2702 mayreturn the application status. At 2718, the PoS terminal 2704 may issuethe READ COUPONS command with P2=Get All Occurrences on determining thatthe application status is “READY FOR COUPON REDEMPTION”. At 2720, thecoupon applet 2702 may return the coupon data for the available Coupons.If there are multiple coupons, it may include coupon data for multiplecoupons in the Response data. If the applet may include all the coupondata, the applet may send an SW=‘9000’. If the applet may not includethe coupon data for all the coupons, the applet may send a warningSW=‘6310’, indicating that more data may exist. At 2722, the PoSterminal 2704 may parse the data and the SW. If the SW may include‘6310’, the PoS terminal may issue another READ COUPONS command withP2=Get Next Occurrences.

On receiving the READ COUPONS command with P2=Get Next Occurrences, at2724, the coupon applet 2702 may attempt to send the coupon data for theremaining coupons. As with the READ COUPONS command with P2=Get AllOccurrences, if there are multiple coupons pending to be sent, thecoupon applet 2702 may include coupon data for multiple pending couponsin the response data as shown at 2724 in FIG. 27. Once the appletincludes all the pending coupon data, the applet may send an SW=‘9000’.If the applet does not include the coupon data for all the pendingcoupons, the applet may send a warning SW=‘6310’, indicating that moredata may exist.

On receiving the SW=‘9000’ in response to the READ COUPONS, at 2728, thePoS terminal 2704 may proceed to process the coupons. After processingthe coupon data, at 2730, the PoS terminal 2704 may set the couponRedemption Status by issuing a SET COUPON REDEMPTION STATUS command. Thebyte Array is always of a length equal to the maximum number of coupons.The coupon Redemption Status may need to be set to valid coupon statesfor all the bytes—even if fewer coupons are present. If fewer couponswere received than the Maximum, the coupon Redemption Status Bytescorresponding to the ones that were not received may be set to indicate“No coupon Present”. The coupon Redemption Status may be set in theorder of receipt of coupon data in the responses to various calls to theREAD COUPONS command. Even in the case when there are no couponsredeemed, the PoS terminal 2704 may be required to issue one of thefollowing two commands: SET COUPON REDEMPTION STATUS or ABORTTRANSACTION.

FIG. 28 illustrates a state machine diagram of the coupon applet duringthe transaction flow according to an example. A state 2802 may indicatea READY FOR UPLOADING COUPONS state indicating that all coupons from thecoupon applet may have been reset, and the wallet client can now uploadthe coupons selected for this transaction. In an example, as shown inFIG. 28, the applet may remain in the state 2802, if a command GETAPPLET STATUS results in an error. The coupon applet may transit to anext state 2804 on receiving a valid ENABLE TRANSACTION command.

The 2804 state may include a READY FOR COUPON REDEMPTION stateindicating that the wallet client may have attached all the coupons tothe coupon applet's memory, and that the PoS terminal can proceed withthe phase 2 of the transaction. In an example, as shown in FIG. 28, thecoupon applet may remain in the state 2804, if a command READ COUPONSresults in an error. The applet may transit to a next state 2808 onreceiving a valid SET COUPON REDEMPTION STATUS command. As shown in FIG.28, the coupon applet may transit to a next state 2810 on receiving avalid ABORT TRANSACTION command.

The state 2808 may include a TRANSACTION COMPLETED state indicating thatthe PoS terminal may have completed the phase 2 of the transaction andCOUPON REDEMPTION STATUS may have been set. Further, this state 2808 mayindicate that the wallet client may now proceed with phase 3 of thetransaction. The coupon applet may remain in this state till the appletmay receive a valid RESET COUPONS command or a valid ABORT TRANSACTIONcommand.

The state 2810 may include a TRANSACTION ABORTED state indicating thatthe PoS terminal transaction (relating to the coupon presentation &redemption) may have been aborted either by the wallet client or the PoSterminal. The coupon applet may remain in this state 2810 till theapplet may receive a valid RESET COUPONS command.

In an example, a table CAT16 may list the various applicable conditionsto accept a command application data unit. In case of rejections, asshown in the table below, the coupon applet may return a status wordSW=‘6985’.

CAT16: Command Acceptance Matrix Ready for Ready for Uploading CouponTransaction Transaction Command Coupons Redemption Completed AbortedSELECT Accepted Accepted Accepted Accepted GET APPLET Accepted AcceptedAccepted Accepted STATUS ABORT Rejected Accepted Rejected RejectedTRANSACTION READ Rejected Accepted Rejected Rejected COUPONS SET COUPONRejected Accepted Rejected Rejected REDEMPTION STATUS

In accordance with exemplary and non-limiting embodiments, the presentdisclosure provides various data objects associated with the couponapplet. In an example, a data object including a coupon applet API IDmay be disclosed. The coupon applet API ID may be encoded as a 2 bytestructure. In order to determine whether the coupon applet API may besupported, the PoS terminal may perform a logical AND operation on thevalue with a mask ‘0102’. The result of the AND operation when equal to‘0102’, may indicate that coupon applet may be supported.

In an example, a data object including an applet API version may bedisclosed. The coupon applet version may be encoded as a 2 bytestructure. In an example, the most significant byte may represent amajor release version and the least significant byte may represent theminor release version. In an example, a data object including an appletstatus may be disclosed. The applet status may identify the currentstate of the applet and may be coded as 1 byte. In an example, a tableCAT17 may list status values associated with the different statuses ofthe applet.

CAT17: Applet Status Status Description ‘01’ Ready For Uploading Coupons‘02’ Ready For Coupon Redemption ‘40’ Transaction Completed ‘80’Transaction Aborted ‘FF’ Unknown State

In an example, a data object including a coupon redemption status may bedisclosed. The coupon redemption status may be stored in one byte forevery attached coupon. The coupon redemption status for the supportedmaximum number of coupons may be stored in a byte array of the lengthmaximum number coupons. In an example, the redemption status for coupon1 may be stored in the B1 of the byte array and the redemption statusfor coupon 2 is stored in the B2 of the byte array. A Table CAT 18 maylist the various supported values of the coupon redemption status.

CAT18: Coupon Redemption Status Coupon Status Description ‘00’ Unused‘01’ Redeemed ‘05’ Rejected ‘FF’ No coupon Present

In an example, the data object may include one or more coupons and thecoupon format may depend on the type of implementation.

In accordance with the exemplary and non-limiting embodiments, thepresent disclosure provides various processing features of the PoSterminal. In an example, the PoS terminal may be compliant with ISO/IEC14443-4. While executing a transaction, the PoS terminal may analyze thedata objects that may be returned by the applet. For example, the PoSterminal may check for a mandatory data object that may be returned bythe applet. If the PoS terminal may not found the mandatory data object,the PoS terminal may abort the transaction. Similarly, if the PoSterminal may recombine incorrect formatting in the data, the PoSterminal may abort the transaction. The PoS terminal may take due careto ensure that the processing exceptions (e.g., incorrect formatting andthe like) may be handled in a robust manner.

In an example, the PoS terminal may perform various processingoperations while performing a transaction. The PoS terminal may formatthe SELECT command as discussed above and may verify the formatting ofthe FCI that may be included in the response message of the SELECTcommand. In an example, the PoS terminal may verify the formatting ofthe FCI in accordance with the table CAT12. If it may be detected thatthe FCI is not formatted in accordance with the table CAT 12, the PoSterminal may terminate processing and ensure de-selection of the applet.

Further, the PoS terminal may analyze the DF Name (tag ‘84’) that may bereturned in the FCI. If the DF Name is not same as the AID provided inthe data field of the SELECT command, then the PoS terminal mayterminate processing and ensure de-selection of the applet. In addition,the PoS terminal may verify that it may support the API by checking theAPI ID (tag ‘9F07’) that may be returned in the FCI. As discussed above,the PoS terminal may perform a logical AND operation on the value withthe mask ‘0102’ to determine an availability of the support for the API.If the result of the AND operation is not equal to ‘0102’, then the PoSterminal may terminate processing and ensure de-selection of the applet.

In an example, the PoS terminal may verify that it may support the APIversion (tag ‘9F09’) that may be returned in the FCI. If it may not bedetermined, then the PoS terminal may terminate processing and ensurede-selection of the applet. In an example, the PoS terminal may verifythat it may support the handling of the coupon format ID (tag ‘9F11’)that may be returned in the FCI. If this may not be verified, then thePoS terminal may terminate processing and ensure de-selection of theapplet. In an example, the PoS terminal may verify that it may supportthe handling of the coupon format version (tag ‘9F13’) that may bereturned in the FCI. If it may not be verified, then the PoS terminalmay terminate processing and ensure de-selection of the applet.

In an example, the PoS terminal may process the GET APPLET STATUScommand. After successfully selecting the coupon applet, the PoSterminal may query the current applet status using GET APPLET STATUS. Inan example, the PoS terminal may recognize that the applet Status maynot be “READY FOR COUPON REDEMPTION”. In such conditions, the PoSterminal may terminate processing and ensure de-selection of the applet.In an example, the PoS terminal may recognize that the applet status maybe “READY FOR COUPON REDEMPTION”. In such conditions, the PoS terminalmay proceed with the normal processing of coupons.

In an example, the PoS terminal may process the READ COUPONS command.The PoS terminal may issue a READ COUPONS [Get All Occurrences] commandto read the coupon data. A successful execution of the command may beindicated by status bytes ‘9000’. This may indicate that all coupon datamay have been sent. Further, the READ COUPONS command may return awarning with SW=‘6310’ to indicate “More data available”. On receipt ofresponse with SW=‘6310’, the PoS terminal may issue a subsequent READCOUPONS [Get Next Occurrences] to retrieve the additional data. In anexample, in a current application session, if the READ COUPONS [Get NextOccurrences] command may be issued before and without issuing the READCOUPONS [Get All Occurrences], the command may be rejected. Further, thePoS terminal may check to ensure that all mandatory data objects arepresent. In an example, the PoS terminal may encounter more than oneoccurrence of a Tag in a coupon object. In such conditions, the PoSterminal may reject the coupon.

In an example, the PoS terminal may process a SET COUPON REDEMPTIONSTATUS command. On validating the applied coupons, the PoS terminal mayissue the SET COUPON REDEMPTION STATUS command to update the couponredemption status on the applet. The coupon redemption status may beconsidered only for the coupons that may have been read since the lastREAD COUPONS [Get All Occurrences]. Further, if the READ COUPONS [GetAll Occurrences] was not issued, all the coupon redemption status may beignored. If all the coupons are not read since the last call to READCOUPONS [Get All Occurrences], the coupon redemption status for theunread coupons may be ignored.

In an example, the PoS terminal may process an ABORT TRANSACTIONcommand. The PoS terminal may encounter errors or states where the PoSmay not be able to proceed with the processing. In such conditions, thePoS terminal may issue the ABORT TRANSACTION command to discontinue thetransaction. On successful processing of the ABORT TRANSACTION command,the coupon redemption status may be lost. Further, on receiving theresponse to the ABORT TRANSACTION command, the PoS terminal mayterminate processing and ensure de-selection of the applet.

High Level Architecture for a Typical Deployment—

FIG. 29 illustrates a high level architecture of a system 2900 for adeployment of the present invention in an exemplary embodiment.

A MTP 2902 may be set up in an ecosystem provider's domain 2904 and maybe integrated into an enterprise service bus (ESB) 2908 of the domain2904. The domain 2904 may include a wallet server 2918. The walletserver 2918 may include at least one wallet 2920 and the MTP 2902. Thewallet 2920 may include at least one widget 2922. In an example, the ESB2908 may connect the MTP 2902 an ecosystem of service providers 2910.The ESB 2908 may be used for designing and implementing the interactionand communication between mutually interacting software applications inservice oriented architecture as illustrated in FIG. 29. The ESB 2908may be required for implementing an ecosystem with multiple walletapplications as illustrated in FIG. 29. The ESB 2908 may monitor andcontrol the routing of a message exchange between various services forexample, between the wallet server 2918 and a wallet provider 2924.

The MTP 2902 may have a plurality of roles. For example, the MTP mayperform a wallet and transaction management along with all the relevantbusiness services that may be associated with delivering wallets to aplurality of diverse mobile environments 2912. In an example, the MTP2902 may provide an establishment of the ecosystem of the serviceproviders 2910 and the third-party developers that build widgets for thewallet without having to worry about handset fragmentation. In anexample, the MTP 2902 may establish a plurality of connectors withvarious ecosystems (for example, the ecosystem of service providers2910, plurality of mobile environments). The connectors along with theMTP 2902 may provide an improved user experience and a diverse set ofservices, which may be accessible to the end user irrespective of timeor location.

The ecosystem provider's domain 2904 may include a trusted servicemanager (TSM) 2912. The TSM 2912 may be configured for an over the airprovisioning and key management of widgets. The TSM 1812 may collaboratewith the MTP 2902 to facilitate a near field communication experience.In an example, the wallet 2920 and the provisioning of the widget 2922may be facilitated by the MTP 2902 (described by way of FIGS. 30-36). Inan example, the setup and management of the wallet 2920 may befacilitated by the MTP102 (described by way of FIGS. 30-36). In anexample, the applet issuance and personalization may be done by the TSM2912 (described by way of FIGS. 30-36).

In an example, the service providers may use an MTP software developmentkit to build widgets that may run within a MTP wallet container. Thewidgets may provide both OTA value added services and proximity NFCservices. The wallet container may provide the widgets 2922 a secureruntime environment and services to communicate OTA with the server (OTAservices) and also communicate with the secure element to manage paymentand non-payment applets for proximity NFC transactions. In an example,the widget 2922 may have an associated applet running in the secureelement. In an example, the widget 2922 may not have an associatedapplet running in the secure element. In an exemplary embodiment, theservice provider may provide only OTA services.

The ecosystem provider 2904 may ensure that all NFC readers 2930 at amerchant location 2914 may be equipped to handle the proximity protocolsbeing used by the various applets that may be loaded into the secureelement. The NFC readers 2930 may process the transaction through anacquiring network that may switch the transaction to the appropriateecosystem service provider in the cloud. In an example, the wallet 2920or the widget 2922 may communicate with an ecosystem cloud to determineservice status and various other hygiene requirements like balance,transaction history, stored value top-up, etc.

The NFC readers 2930 may facilitate finalization of the secure elementform factor, a micro SD, an embedded or UICC (as described in detail byway of FIG. 31). The NFC readers 2930 and allied infrastructure mayfacilitate finalization of devices. The NFC readers 2930 may facilitatepayment protocol finalization. The NFC readers 2930 may facilitatereader distribution and support.

As illustrated in FIG. 29, the mwallet 2920 may interact with variouselements from the system 2900. The mwallet 2920 may interact with thewallet providers 2924 and a plurality of widget providers 2928. In anexample, the mwallet 2920 may interact with various infrastructuresystems like support, message server and other service providers.

Each Ecosystem may include a plurality of ecosystem actors. In exemplaryembodiments, the ecosystem actors may include near field communication(NFC) applets, an application store, a barcode reader, an ecosystemprovider, an issuer, a message source, a mobile phone, a mobile wallet,a NFC point of sale terminal, an original equipment manufacturer (OEM)provider, a secure element (SE), a service providers (or widgetprovider), a telecom operator (telco), a trusted service manager (TSM),a TSM proxy client, an user, wallet administrator, a wallet companionapplet (WCAp), a wallet provider, a wallet server, and a widget. In anexample, the NFC applets on the secure element may perform transactionswith the NFC point of sale readers. In an example, the applicationstores may refer to the application distribution mechanism that may beset up by device manufactures such as Apple®, Blackberry®/Rim® andAndroid®/Google®. In an example, the barcode reader may be used to scanthe barcode. In an example, the ecosystem aggregator entity that ownsand sets up the mobile wallet ecosystem may ties up with the ecosystemoperators or partners. The ecosystem aggregator entity may set upinfrastructure and aggregate service providers to enable an mPayment andan mCommerce ecosystem. In an example, the issuer may be an entity thatmay issue cards, coupons, loyalty, gift and other tokens. In an example,the message source may be an entity that may create messages usingwallet APIs for wallet users. In an example, the mobile phone may be theone on which the wallet runs. In an example, the mobile wallet may bedownloadable client application for mobile handsets to provide userswith a seamless payment experience along with a suite of value addedservices for both proximity (NFC) and over the air transactions. In anexample, the NFC point of sale terminal may interact with the NFC phoneand performs a transaction. In an example, the OEM provider may providedevices, micro SDs, SE etc. In an example, the SE may represent thecombination of the NFC with smart card technology for secure and trustedtransactions, wherein the NFC may provide the RF front end forconnectivity and smart card may provide security/crypto engine. In anexample, the service providers may be the entity that creates wallet andoffers payment and non-payment services to the wallet users. In anexample, the telecom operator (Telco) may provide SMS and data services.In an example, the TSM may manage the OTA Issuance of Applet and theCard Data on the Secure Element and may provide Key Management Services.In an example, the TSM Proxy Client may sit on the mobile phone andinteracts with the TSM server and the secure element. In an example, theuser may be an end user of the mobile wallet. In an example, the WalletAdministrator may manage the backend operation of the wallet includingthe wallet lifecycle. In an example, the wallet companion applet mayenable secure wallet & widget life cycle management that may includewallet & widget authentication, wallet state management and settings,and provides a ticket-based verification for secure authentication withthe wallet server. In an example, the wallet provider may be an entitythat launches branded wallet application and offers it to the user. Inan example, the wallet server may be a robust, scalable, server platformthat may manage the wallet ecosystem, the wallet lifecycle, the widgetprovisioning & integration with other ecosystem partners. In an example,the widget may be a set of business features bundled together andavailed as a single unit. The widget may contain screen/UI, eventhandling, and corresponding business logic.

Use Cases—Overview

In various exemplary and non-limiting embodiments, the wallet use-casesmay be categorized into various categories. These categories may includewallet download, wallet activation & set up, transaction & widget, lifecycle activities, and administration & support. In an example, thewallet download may include use cases and methods for walletdistribution and installation of the wallet software on consumer'smobile phone. These services may be required for introducing the user tothe platform and provisioning the mobile software to the mobile phone.In an example, the wallet activation & set up category may include usecases for authenticating user credentials and establishing user profileand enabling user to use mobile wallet application. In an example, thetransaction & widget category may include use cases to enable user todownload widgets and get payment & non-payment tokens and transact usingan activated mobile wallet application. The transaction use cases mayincludes NFC transactions, barcode based transactions and over-the-airtransactions. In an example, the life cycle activities may include usecases and features that may be required to enable users to continuing touse the services of the wallet application. In an example, theadministration & support use cases may be related to managing day to dayoperational and support activities of the mWallet platform and includesuse cases such as change device, lock and unlock device etc.

In various exemplary and non-limiting embodiments, the widget downloadmay be the first use case scenario followed by the wallet activation &set up. The wallet activation & set up may further be followed by thetransaction & widget use cases. The transaction & widget use cases maybe followed by the life cycle activities and the administration &support use case category may support and assist the wallet download,wallet activation & set up, transaction & widget, life cycle activitiescategories. Few exemplary use cases may be described herein.

In an exemplary and non-limiting embodiment, the widget download may bein form of a SMS with Download URL (Push or Pull) use case. In anexample, the SMS with Download URL (Push or Pull) use case may allowwallet provider to distribute application over the air using SMSpush/pull without publishing the application on the application store.In this example, the mobile wallet may be successfully installed on themobile phone and the user may see the mobile wallet icon on the mainscreen. The SMS with Download URL (Push or Pull) use case may useecosystem actors like the user, the ecosystem provider, the mobilephone, and the telco. A precondition required for this use case may bethe mobile phone to be data enabled.

FIG. 30 illustrates a flow chart describing a method 3000 of installingthe mobile wallet on the mobile phone of the user using SMS withDownload URL (Push or Pull). The method 3000 includes initiating the SMSby sending a SMS to a short code at step 3002. In an example, the SMSmay be sent by the user to the Telco or wallet provider, also referredto as an SMS push. In an alternative embodiment, the user may receive anSMS from telco or wallet provider, also referred to as an SMS pull. Inan alternative embodiment, the user may initiate SMS from a Website. Thecompletion of step 3002 may be dependent on successful initiation of theSMS short code (SMSC). The method 3000 may further include sending theSMS to the user at step 3004. In an example, the Telco may send the SMSto the user. In an alternative embodiment, the user may use integrationwith the SMSC. The completion of step 3004 may be dependent on themethod of SMS integration, which may be with the Telco or the SMSC.

The method 3000 further includes receiving the URL with a welcome textby the user at step 3008. The user may select the URL provided in theSMS. The completion of step 3008 may be dependent on URL descriptor andwelcome message. The method 3000 further includes the mobile phonesending the request to wallet server to provide the downloadable file atstep 3010. The wallet server may be further configured to for providingthe wallet software to the mobile phone at step 3012 of the method 3000.The mobile phone may be configured for downloading the application onthe mobile phone and prompting user for installation of the applicationat step 3014 of the method 3000. The user may confirm the installationat step 3018 of the method 3000 after the user has been prompted by themobile phone for installation. The mobile phone may install theapplication after receiving user confirmation at step 3020 of the method3000.

In an exemplary and non limiting embodiment, a wallet activation usecase process may enable the user to activate the mobile wallet andestablish secure linkages between user & ecosystem actors such as mobilewallet, mobile phone, mobile phone, secure element, wallet server, TSM,and wallet provider. In an example, the wallet activation use caseactors like mobile handset, TSM, the user, the mobile wallet, the walletprovider, the wallet server. The wallet activation may take place onlywhen the user may have successfully installed the mobile wallet on themobile handset (either preloaded or downloaded by the user as describedby way of FIG. 30). Further, for wallet activation to take place, the SEmay be connected/associated with the mobile handset (for removable SEslike micro SD and UICC). Further, the user may have the dataconnectivity for wallet activation to take place. After successfulactivation of the wallet, the user may be able to use the walletapplication.

FIG. 31 illustrates a method 3100 for wallet activation by the user. Themethod 3100 includes the mobile wallet showing a registration &activation screen to the user that includes an email address and apersonal identification number (PIN) at step 3102. In an example, thePIN can be a 4 digit number. In an example, the PIN may be configured tobe numeric and have business rules associated with it, e.g., 4-10digits, no sequence, no repeating numbers and the like. In an example,the registration screen may be customized to capture additionalparameters, as required to create a user profile, for example, username,a user photograph or any other user signature. The method 3100 furtherincludes the user entering all required information on the registrationand activation screen at step 3104. The method 3100 further includes themobile wallet showing latest terms and conditions (T&C) to the user atstep 3108. In an example, the T&C may be pulled at run time from server.In an example, the T&C may be different for each wallet provider. In anexample, the acceptance of the T&C may be informed to the walletprovider along with a version number. The method 3100 may require theuser to accept the T&C at step 3110. In an example, if the user mayreject the T&C, then the user may be shown a message indicating thatacceptance of T&C may be required to activate the wallet.

The method 3100 further includes the mobile wallet fetching a secureelement ID (CIN), a device ID (IMEI), and a SIM ID (ICCID) from themobile phone and sends the information (including E-mail ID, PIN and T&Cversion and a time stamp) to the wallet server at step 3112. In anexample, not all information may be available to the mobile wallet inall cases and a separate work flow or interaction with Telco or serviceprovider may be required to capture the required details. For example,if a mobile number may not be available from the SIM or device APIs, itmay be captured from HTTP Header coming from the device if a Telcoprovides it. The method 3100 may require mobile number and SIMinformation from Telco before proceeding further in wallet activation.The method 3100 further includes the wallet server performing a firstlevel verification to check if any of the information may be duplicateat step 3114. In an example, if the user record may already beavailable, then the wallet server may provide appropriate error messageto the user.

The method 3100 further includes the wallet server sending theinformation to wallet provider for verification at step 3118. At step3120 the wallet provider may verify the information and send theverification results to the wallet server. In an example, theverification process may include a KYC check by the Telco. Theverification process may be required by the method 3100 beforeproceeding further in wallet activation. At step 3122, the wallet servermay create a wallet record with a user status as ‘INACTIVE’ and send aconfirmation to the mobile wallet. At step 3124, the mobile wallet mayshow a message to the user that wallet may be in process of beingpersonalized for the user. At step 3128, the wallet server may send arequest to TSM through ESB with user information (the mobile number, theSE ID, the device ID, the WALLET ID, and the PIN as discussed above).

The method 3100 further includes the ESB configured for sending theinformation to TSM at step 3130. At step 3132, the TSM may communicatewith the TSM proxy client and initiates the SE personalization process.At step 3134, the TSM may personalize the secure element with walletcompanion applet installation and may perform store data on it with thehardware and wallet related information. At step 3138, the TSM may senda notification to the wallet server once the personalization iscomplete. At step 3140, the wallet server may update the wallet statusas “active” and notifies the wallet client. At step 3142 of the method,the mobile wallet may show a confirmation to the user indicatingsuccessful wallet activation.

In an exemplary and non limiting embodiment, the transaction and widgetuse cases may include a series of widget management use cases. In anexample, the widget management use cases may include a series of widgetinstallation uses cases. In an example, the widget installation usescases may include an in-application use case alert. The in-applicationuse case alert may allow the users to download widgets based on thealerts received by the wallet provider. The wallet provider may send thealerts using C-SAM's alert framework. The in-application use case alertmay require the mobile wallet, the service provider, the user, thewallet provider, and the wallet server. The user may install widget asan in-application case after activation of the mobile wallet. Also, theuser may be logged in to the mobile wallet. The service should havecreated a widget before in-application use case alert. The walletprovider may have reviewed the widget and published it before thein-application use case alert. The wallet provider may have created analert before the in-application use case alert. After the in-applicationalert, the user may have successfully downloaded the widget. In thein-application use case alert, the mobile wallet may show an alert tothe user. In an example, the alert may be shown to the user in themobile wallet message inbox or during communication with wallet server.The user may then, selects alert, view the message and initiate adownload. After initiation of download, the mobile wallet may installthe widget and send confirmation to the wallet server. The wallet servermay send confirmation to the mobile wallet. The mobile wallet may showthe confirmation to the user.

In an example, the widget installation uses cases may include a searchand download use case. The search and download use case may allow theuser to search the widgets and download and install on the mobilewallet. The search and download use case may require the mobile wallet,the wallet server, the service provider, the user and the walletprovider. The search and download use case may require the user to haveactivated the mobile wallet, user to have logged in to the mobilewallet, service provider to have created a widget, and wallet providerto have reviewed the widget and published it. The user may successfullydownload the widget as a result of the search and download use case.

FIG. 32 illustrates a method 3200 as an example of the search anddownload use case. The method 3200 may include the user to search orbrowse categories of available widgets at step 3202. In an example, theuser may be able to search the widget by selecting widget from a servicelist or entering or selecting appropriate criteria in the wallet. Atstep 3204, the method 3200 may require the mobile wallet to send arequest based on user criteria to the wallet server. The wallet servermay send the mobile wallet a list of all available widget matchingsearch criteria of the user at step 3208. The mobile wallet may show thelist of the widgets to the user at step 3210. The user may view thewidget description of any widget from the list sent by the wallet serverand initiate a download of the desired widget at step 3212. The mobilewallet may install the widget and send a confirmation to the walletserver at step 3214 of the method 3200. The wallet server may send aconfirmation to the mobile wallet at step 3218. The mobile wallet mayshow the confirmation to the user at step 3220.

In some exemplary and non-limiting embodiments, the transaction usecases may include an over-the-air (OTA)-transaction use case. Theover-the-air transaction use case may describe a process for theOTA-transaction based transaction. The OTA-transaction may include theuser, the mobile wallet, the widget, and the service provider. For theOTA-transaction to take place, the user may have to be logged into themobile wallet, the user may have to have data connectivity, and the usermay have loaded the widget for OTA transaction on the mobile wallet. Inan example, the OTA-transaction may facilitate in successfullycompleting a transaction by the user

FIG. 33 illustrates an exemplary method 3300 for the OTA-transaction.The method 3300 may include the user to select a widget at step 3302.The widget selection may be done by various types of services that maybe available to the user, for example, ticketing, bill payment and thelike. At step 3304 the method 3300 may require the mobile wallet to loadthe widget at step 3304 onto the service screens (as also discussedabove). The user may browse the service screens and selectsproduct/service to pay at step 3308. The workflow and user experiencemay differ for different services. A service may require multipleinteraction before the user may reach a payment screen. The walletserver may send the information from the user to the service provider atstep 3310. The service provider may provide a payment request to theuser with a payment amount at step 3312. The user may select a paymentcard and provides the payment info at step 3314. In an example, user mayselect a payment method available on wallet and that may allow the OTAtransaction. In an example, the user may enter card information whileair-travelling as well. The step 3318 of the method 3300 may require thewallet server to provide the payment information to the serviceprovider. At step 3320 the service provider may settle the paymentthrough a payment gateway/banking interface and may provides atransaction confirmation to the wallet server. At step 3322, the walletserver may receive the transaction confirmation and may send theinformation to the widget and the wallet. At step 3324 of the method3300, the mobile wallet may show the transaction confirmation anddetails to the user.

In exemplary and non-limiting embodiments, the life cycle activities mayinclude a card issuance use case. The card issuance use case may allow acard issuer to issue a card data on the wallet. The card issuance usecase may include the issuer, the wallet server, the TSM, the user, andthe mobile wallet. For the card issuance to take place, the user mayhave to activate the mobile wallet, the user may have to log in to themobile wallet, the service provider may have to create an updatedwidget, and the wallet provider may have to review the widget andpublish it. After, the card issuance is completed successfully; the usermay be able to download the widget.

FIG. 34 illustrates a method 3400 as an example for the card issuanceuse case. The method 3400 may require the issuer to approve a paymentaccount (for example, a credit card) at step 3402. The issuer maypersonalize the secure element with the help of the TSM at step 3404. Inan example, the TSM may install the payment applet and may personalizewith the track data. The card issuance use case may depend upon thepayment card and the applet issuance on the SE & the type of applet. Inan example, the applet may be a Pay-pass, a zip etc. At step 3408, themethod 3400 may require the user to provide soft card data to the walletserver via ESB. The soft card data may contain images, balance, cardnick name, and AID to be used for transaction. The method 3400 mayfurther require the wallet server to create a record for a serviceaccount for the user at step US610. The wallet server may identify awidget to be sent along with the service account at step 3412. Thewallet server may create a hash on the widget and send the Widget ID,the version and the hash to TSM via ESB at step 3414. The TSM maycomplete the widget hash update on the secure element with the help fromthe TSM proxy client at step 3418. The TSM may notify wallet server viaESB once the widget hash may be updated at step 3420. The wallet servermay make the soft card and widget available for download at step 3422.The mobile wallet may perform synchronization and may download the softcard and the widget on the mobile phone of the user.

In exemplary and non-limiting embodiments, the support andadministration may include a terminate wallet use case. The terminatewallet use case may allow a wallet administrator to terminate a walletaccount. The terminate wallet use case may include a mobile wallet, awallet server, a TSM, a TSM proxy client. For the wallet to terminate,the wallet administrator may have to be registered, the walletadministrator may have to have privileges to manage a user profile, andthe wallet administrator may have to a wallet management console. Thewallet administrator may successfully terminate a wallet account aftercompletion of wallet termination use case.

FIG. 35 illustrates a method 3500 as an example to terminate a wallet.The method 3500 may require the wallet administrator to initiates asuspend wallet activity at step 3502. The wallet server may update thewallet state as “termination_pending” at step 3504 after the suspensionactivity may be initiated. The wallet server may send a request to ESBat step 3508. The ESB may retrieve a list of service accounts from thewallet server at step 3510. The ESB may send request to the issuers toterminate the service accounts at step 3512. The ESB may check the listof service accounts before sending request to the issuers. The issuermay terminate the wallet account in the backend and also remove thepayment applets from SE, with the help of TSM at step 3514. The ESB maysend a request to TSM to remove the wallet companion applet at step3518. The TSM may send a message to the TSM proxy client at step 3520.The TSM proxy client may remove the wallet companion applet from SE atstep 3522. The TSM may send a notification to ESB once the update may bedone at step 3524. The wallet server may receive the update and maychange the wallet status to “terminated” at step 3528 of the method3500. The wallet may be successfully terminated after step 3528.

In exemplary and non-limiting embodiments, the widget managementincludes a publish widget use case. The publish widget use case mayallow the ecosystem provider to publish an approved widget. The publishwidget use case may include the wallet administrator, the wallet server,and the service provider. Before publishing a widget, the walletadministrator may have to be registered, the service provider may haveto be registered, the wallet administrator may have to be logged intothe wallet management console, and the widget may have to be validatedand approved.

FIG. 36 illustrates a method 3600 as an example for publishing a widget.The method 3600 may require the wallet administrator to log into thewallet server system management console at step 3602. The walletadministrator may select widget management from the wallet server systemmanagement console at step 3604. The wallet administrator may select alink for publishing widgets from the widget management at step 3608. Thewallet server may display all widgets in the “approved” state at step3610. The wallet administrator may select a widget to publish at step3612. The wallet administrator may enters any comments or remarks andselect publish one the publishing widgets of the wallet server systemmanagement console at step 3614. The wallet server may prompt the walletadministrator for a confirmation at step 3618. The wallet administratormay confirm that the widget may be published at step 3620. The walletserver may change the state of the widget to “published” at step 3622.The wallet server may generate a signature for the widget at step 3624.The wallet server may confirm that the widget may have been published atstep 3628 of the method 3600.

Behavioral Model—Add Widget—FIG. 37 is a method 3700 for adding a widgetfor the first time along with a TSM interaction. The method 3700 mayrequire a user to use a wallet 3702 for selecting a widget 3704 at step3708. At step 3710, a widget script component 3712. The script component3712 may communicate with a widget manager 3714 so as to retrieve alatest version of the widget 3704 at step 3718 of the method 3700. In anexample, the script component 3712 may communicate with a widget manager3714 so as to retrieve a widget descriptor. In an example, the scriptcomponent 3712 may communicate with a widget manager 3714 so as toretrieve the widget binaries. The widget manager 3714 may send widgetdescriptor data blocks, hash of widget bundle, MDN, and widget instanceID to a trusted service manager (TSM) 3720 at step 3718 of the method3700. The widget manager 3714 may generate widget response andcommunicate to the wallet 3702. The wallet 3702 may include a databasefor storing widget binaries and widget response from the widget manager3714. The TSM 3720 may add the widget 3704 to a secure element 3722 atstep 3728. In an example, the secure element 3722 may be a walletapplet.

FIG. 38 is a behavioral model of a system 3800 for widget accessverification with reference to the widget loading time signature,verification, and execution time access verification.

In an exemplary and non-limiting embodiment, a wallet 1002 may beconfigured so that a user may select a widget from a list of widgets.The wallet 1002 may be configured so that wallet 1002 may start thewidget application selected by the user. The wallet 1002 may interactwith a widget manager 3804. The widget manager 1004 may be configured toinitialize resource managers, controllers, create default access contextand the like. In an example, the widget manager 3804 may include thelist of widgets and may facilitate showing of the widget lists to theuser through the wallet 3802. The system 3800 may include acryto-utility 3808 that may be configured to load the widget bundle fromdatabase. The cryto-utility 3808 may create a hash, for example a securehash algorithm 1 (SHA1) hash from the widget bundle. The cryto-utility3808 may communicate the hash and widget bundle to the widget manager3804. The system 3800 may include a NFC chip utility 3810 and a secureelement or wallet applet 3812. The cryto-utility 3808 may initiate arequest to verify the widget bundle and send the request to the NFC chiputility 3810 and the wallet applet 3812. The NFC utility 3810 mayfacilitate selection of the 3812. The applet 3812 may send theverification request to a widget access context 3814. The widget accesscontext 3814 may verify the widget bundles, the widget descriptor. In anexample, the widget manager 3804 may initiate a communication with thewidget access context 3814. The widget access context 3814 may be incommunication with an access action controller 1018. The access actioncontroller 1018 may check permission and access for permissions of theselected widget. In an example, an appropriate message may be sent tothe user when the verification may be passed or failed. The system 3800may include an action controller 3820 may execute the widget requestsafter permission verification. An access aware screen controller 3822may be included in the system 3800, and configured to show a screen ifthe permission access may be received from the access action controller1018. The system 3800 may include a screen controller 3824. The screencontroller 3824 may be configured to display a screen on the wallet 3802after checking display permission from the widget access context 3814.

The methods and systems of mobile transaction platforms in amulti-domain eco system for secure personalized transactions may providefor a method of protocol abstraction for a mobile transaction platformin a dynamic ecosystem for secure commerce and payment transactions. Themobile transaction platform may be a carrier-grade infrastructureplatform that facilitates the development and delivery of securetransactional services, both Over-the-Air and through NFC Proximity, toa broad range of mobile phone environments. The method may includetaking the information elements of the original method apart and mappingthe information elements of the original method to new fields ofinformation of a common format. These new fields of information may beempty, filled, or translated by tokenization or some other method oftranslation. The common format may work for different input protocolsand deliver a single output protocol. The common format may be ameta-model that is consistent with the data structures of each protocol.The common model may be a services abstraction model that can handle thenative sequence flows within an underlying protocol. The input protocolsmay be point-of-sale protocols, NFC protocols, credit card protocols,debit card protocols, ticketing protocols, EPSON Esc/POS protocol, UTCStandard protocol, AEDEX protocol, ICD 2002 protocol, Ultimate protocol,CD 5220 protocol, DSP-800 protocol, ADM 787/788 protocol, HP protocol,UnifiedPOS protocol, OLE for Point-of-Sale protocol, JavaPOS,cloud-based protocol, and the like.

The method of protocol abstraction may be performed between a mobiledevice and a point-of-sale device via a communication link. The mobiledevice may be a smartphone, tablet computer, laptop computer, or thelike. The mobile device may be running an operating system such as iOS,Android, Windows, or the like. The mobile device may be running anapplication such as a container, widget, wallet, or the like. Theapplication may store information related to soft cards. The soft cardsmay be credit cards, loyalty cards, gift cards, store value cards,ticket cards, and the like. The soft cards may be issued from multipleservice providers from multiple ecosystems through multiple carrier ornetwork providers. The soft cards may be provisioned, maintained, andenabled through and by a provisioning architecture. The provisioningarchitecture may include a mobile enabling tier, a service tier, and asoftware development kit. The point-of-sale device could be a real worldpoint-of-sale device operating in a proximity environment or a virtualworld point-of-sale device operating in a remote environment. Thecommunication link may be an wired communication link, a wirelesscommunication link, an NFC link, a Bluetooth link, a local area networklink, a wide area network link or the like.

The method of protocol abstraction may include a tokenization capabilityfor a mobile transaction platform in a dynamic ecosystem for securecommerce and payment transactions. The mobile transaction platform maybe a carrier-grade infrastructure platform that facilitates thedevelopment and delivery of secure transactional services, bothOver-the-Air and through NFC Proximity, to a broad range of mobile phoneenvironments. The tokenization capability may take private informationand replace it with a token. The private information may include a pinnumber, a credit card number, primary account number, other personallyidentifiable information, and the like. The token may consistent ofnumeric characters, alphabetic characters, a combination of alphabeticaland numeric characters, a truncated primary account number withalphabetic and numeric characters replacing the middle digits of theprimary account number, and the like. The token may be a one-time usetoken. The token may be issued by a trusted entity in the dynamicecosystem for secure commerce and payment transactions. The trustedentity may be a server located at the payment gateway, acquirer, orissuer. The token may be generated as a mathematically reversiblecryptographic function, a one-way non-reversible cryptographic function,or assigned through an index function, sequence number or a randomlygenerated number.

With reference to FIG. 39, there is illustrated a dynamic ecosystem forsecure commerce and payment transactions according to exemplary andnon-limiting embodiments. A dynamic ecosystem for secure commerce andpayment transactions 3902, include a point-of-sale terminal 3908, anapplication running on a mobile device 3910, a communication linkbetween the point-of-sale device 3908 and the mobile application runningon a mobile device 3910. A single protocol 3912 associated with a singledomain 3914 may connect the point-of-sale device 3908 and the mobileapplication running on a mobile device 3910.

With continued reference to FIG. 39, a dynamic ecosystem for securecommerce and payment transactions 3904, a multiple protocols 3916 areassociated with multiple domains 3918 may connect the point-of-saledevice 3908 and the mobile application running on a mobile device 3910.

With continued reference to FIG. 39, a dynamic ecosystem for securecommerce and payment transactions 3906, a multiple protocols 3916 areassociated with multiple domains 3918 may be abstracted using a wrapper3920, as described previously in this specification, to connect thepoint-of-sale device 3908 and the mobile application running on a mobiledevice 3910.

The methods and systems described herein of multi-domain ecosystemsecure personalized transactions includes a method of abstracting aprotocol in a secure personalized transaction through a multi-domainecosystem. The method includes receiving an electronic transactionmessage in a secure personalized transaction comprising a plurality ofinformation fields at a networked device in the multi-domain ecosystem.The method may further include determining with the device a type and acontent for each of the plurality of information fields. The method mayfurther include mapping at least a portion of the plurality ofinformation fields to common format message fields. The method mayfurther include configuring a common format transaction message based onthe mapping. The method may further include transmitting the commonformat transaction message from the networked device to a secondnetworked device in the multi-domain ecosystem.

The methods and systems described herein of multi-domain ecosystemsecure personalized transactions includes a method of abstracting aprotocol in a secure personalized transaction through a multi-domainecosystem. The method includes receiving an electronic transactionmessage in a secure personalized transaction comprising a plurality ofinformation fields at a networked device in the multi-domain ecosystem.The method may further include

determining with the device a type and a content for each of theplurality of information fields. The method may further include mappingat least a portion of the plurality of information fields with ameta-model that provides consistent mapping of the secure personalizedtransaction protocol to common format message fields. The method mayfurther include configuring a common format transaction message based onthe mapping. The method may further include transmitting the commonformat transaction message from the networked device to a secondnetworked device in the multi-domain ecosystem.

The methods and systems described herein of multi-domain ecosystemsecure personalized transactions includes a method of abstracting aprotocol in a secure personalized transaction through a multi-domainecosystem. The method includes receiving an electronic transactionmessage in a secure personalized transaction comprising a plurality ofinformation fields at a networked device in the multi-domain ecosystem.The method may further include

determining with the device a type and a content for each of theplurality of information fields. The method may further include mappingat least a portion of the plurality of information fields to commonformat message fields. The method may further include configuring acommon format transaction message based on the mapping. The method mayfurther include wrapping the common format transaction in a protocolabstraction content wrapper. The method may further include transmittingthe wrapped common format transaction message from the networked deviceto a second networked device in the multi-domain ecosystem.

With reference to FIG. 40, there is illustrated a method of protocolabstraction in a dynamic ecosystem 4002 for secure commerce and paymenttransactions according to exemplary and non-limiting embodiments. Apoint-of-sale device 4004 may connect to a mobile wallet 4006 running ona mobile device 4008. Multiple mobile wallets may be running on themobile device. The point-of-sale device 4004 may communicate with themobile wallet 4006 running on the mobile device 4008 over acommunication link 4010. The communication link 4010 may be a wiredcommunication link, a wireless communication link, an NFC link, aBluetooth link, a local area network link, a wide area network link orthe like.

With continued reference to FIG. 40, the mobile wallet 4006 running on amobile device 4008 may communicate with service provider 4012 via aprotocol through a network or wireless provider 4014 and a network 4022.The network 4022 may be an Internet Protocol based network. A wrappedacquisition channel 4016 may be established to facilitate protocolabstracted communication among the point-of-sale device 4004, the mobilewallet 4006 running on a mobile device 4008, and an acquirer facility4018. The wrapped acquisition channel 4016 that may wrap the protocolused for communication as described previously in this specification mayfacilitate exchanging electronic transaction information via astandardized communication protocol between the point-of-sale device4004 and the mobile wallet 4006 running on a mobile device 4008 that isseamless to a user of the mobile device 4008. A user of the mobiledevice 4008 may operate the mobile device at a point-of-sale withoutnecessarily being aware of the type of protocol being used during thePOS transaction. In this way, legacy POS devices that only support anon-IP based transaction flow and POS devices that are capable ofsupporting an aggregated protocol transaction flow (e.g. through an IPnetwork) may be seamlessly operated by the user. The mobile wallet 4006running on a mobile device 4008 may communicate with service provider4012 via a protocol through an acquirer 4018 and a network 4016. Thenetwork 4016 may be an Internet Protocol based network. Thepoint-of-sale device 4004 may communicate via an existing directtransaction channel 4020. The existing direct transaction channel may bea non-Internet Protocol based channel 4020.

The methods and systems described herein of multi-domain ecosystemsecure personalized transactions includes a method of a securepersonalized transaction through a multi-domain ecosystem. The methodincludes receiving an electronic transaction message in a securepersonalized transaction comprising a plurality of non-confidentialinformation fields at a networked device in the multi-domain ecosystem.The method may further include configuring a token comprising thenon-confidential information and transaction identification informationat the networked device. The method may further include electronicallytransmitting the token to a source of the electronic transaction messageand to a service provider server disposed in the multi-domain ecosystem.The method may further include transmitting authentication of the token,along with token identification information from the source of theelectronic transaction message to the service provider server forauthenticating the transaction identified by the token. In an example,the service provider may be an instrument issuer. In an example, theservice provider may access confidential information that is notaccessible to the networked device to facilitate authenticating thetransaction identified by the token. The confidential information may beassociated with a digital wallet disposed on a device from which theauthentication of the token is transmitted. In an example, transmittingauthentication of the token may be facilitated by a provider-specificwidget executing on a device from which the electronic transactionmessage is sourced.

With reference to FIG. 41, there is illustrated a method of tokenizationof transaction content in a dynamic ecosystem 4102 for secure commerceand payment transactions according to exemplary and non-limitingembodiments.

A point of sale device 4104 may be activated by near-by presence of amobile phone that incorporates a mobile wallet 4106 requesting toperform an electronic transaction such as a purchase. The POS device4104 and mobile wallet 4106 may exchange non-personal information thatdescribes the requested transaction (item, cost, date/time, POSidentity, POS service provider identity, and the like) along with aunique identifier generated by the mobile wallet 4106. The POS 4106 mayissue a token that incorporates this information in a secure encoding tothe mobile wallet 4106 and may also submit a version of the issued tokento a payment authority, such as an issuing bank 4112 that may have beenspecified by the mobile wallet 4106.

The mobile wallet 4106 and the issuing bank 4112 may subsequentlyexchange information related to the transaction as described in thetoken to complete the transaction. In the example, the mobile wallet maysubmit a query to the issuing bank that includes a reference to thetoken (e.g. a token ID) that may signal to the issuing bank that thetransaction identified in the token is authorized. Alternatively, theissuing bank may submit a request for authorization of the transactionreferenced in the token to the mobile wallet. The transactioninformation of the token received from the POS terminal 4104 and fromthe issuing bank 4112 may be compared and presented to the user of themobile device 4108 for authentication. In this way the transaction maybe executed without requiring the POS 4104 or other entities in the POScommunication path to have access to any user confidential, personal, orfinancial information because all confidential, personal, and financialinformation of the user/mobile wallet may be retained on the backendserver (e.g. the issuing bank 4112) and may be accessed indirectlythrough the token that is exchanged among the mobile wallet 4106, thePOS terminal 4104, the acquisition channel 4120, and the paymentfacilitator, such as the issuing bank 4112.

A point-of-sale device 4104 may connect to a mobile wallet 4106 runningon a mobile device 4108. Multiple mobile wallets may be running on themobile device. The point-of-sale device 4104 may communicate with themobile wallet 4106 running on the mobile device 4108 over acommunication link 4110 or based on visual information exchange (e.g. aQR code or bar code, and the like). The communication link 4110 may be awired communication link, a wireless communication link, an NFC link, aBluetooth link, a local area network link, a wide area network link orthe like. The visual in formation exchange may include receiving animage with a camera and/or displaying an image on an electronic display.

With continued reference to FIG. 41, the point-of-sale device 4104 mayreceive private information from the mobile wallet 4106 running on themobile device 4108, store the private information, then send the privateinformation to an issuing bank 4112 for authorization. The issuing bankmay receive the private information directly through an over the airinterface 4114, or through a service provider 4116 and a network 4118.Upon authorization, the issuing bank 4112 may replace the privateinformation with a token. The token may consistent of a numericcharacters, alphabetic characters, a combination of alphabetical andnumeric characters, a truncated primary account number with alphabeticand numeric characters replacing the middle digits of the primaryaccount number, and the like. The token may be a one-time use token. Thetoken may be issued by a trusted entity in the dynamic ecosystem forsecure commerce and payment transactions. The trusted entity may be aserver located at the payment gateway, acquirer, or issuer. The tokenmay be generated as a mathematically reversible cryptographic function,a one-way non-reversible cryptographic function, or assigned through anindex function, sequence number or a randomly generated number. Theissuing bank 4112 may then return the token to the point-of-sale device4102. The point-of-sale device 4102 may then replace the privateinformation with the token and store the token. The token may becontained in a wrapper, as described previously in this specification,and communicated among the mobile wallet 4106 running on a mobile device4108, point-of-sale device 4104, and acquiring bank 4112, through awrapped acquisition channel 4120.

With continued reference to FIG. 41, the mobile wallet 4106 running onthe mobile device 4108, may establish a secure channel with the issuingbank 4112. Upon authorization, the issuing bank 4112 may generate atoken and map it to the private information stored at the issuing bank4112. The token will then be sent to the mobile wallet 4106 running onthe mobile device 4108 and the mobile wallet 4106 running on the mobiledevice 4108 will use the token to complete the transaction at thepoint-of-sale device 4104. The mobile wallet 4106 running on the mobiledevice 4108, may generate and store a stack of tokens uponpersonalization of the mobile wallet 4106 and use these tokens tocomplete the transaction at the point-of-sale device 4104. The mobilewallet 4106 running on the mobile device 4108, may generate, at the timeof the transaction, and use a token to complete the transaction at thepoint-of-sale device 4104.

With reference to FIG. 42, there is illustrated a method of dynamictokenization of transaction content in a dynamic ecosystem 4202 forsecure commerce and payment transactions according to exemplary andnon-limiting embodiments. A point-of-sale device 4204 may connect to amobile wallet 4206 running on a mobile device 4208. Multiple mobilewallets may be running on the mobile device. The point-of-sale device4204 may communicate with the mobile wallet 4206 running on the mobiledevice C408 over a communication link 4210. The communication link 4210may be a wired communication link, a wireless communication link, an NFClink, a Bluetooth link, a local area network link, a wide area networklink or the like. Visual information exchange may include receiving animage with a camera and/or displaying an image on an electronic display.

With continued reference to FIG. 42, the point-of-sale device 4204 mayreceive a dynamic token from the mobile wallet 4206 running on themobile device 4208. The dynamic token may be one of a dynamic tokengenerated by the mobile wallet 4106 running on the mobile device 4108upon personalization of the mobile wallet 4106, at the time of thetransaction, or the like. The point-of-sale device 4204 may then sendthe dynamic token to the issuing bank 4212 for validation. The issuingbank 4212 may then validate the token via an over-the-air interface 4214by validating the token and a mobile link ID known by the issuing bank4212 to be associated with the mobile device 4208 on which the mobilewallet 4206 that generated the token resides. Upon validation of thetoken and mobile link ID, the issuing bank 4212 then authorized paymenton the point-of-sale device 4204 and settlement on the mobile wallet4206.

The methods and systems described herein of multi-domain ecosystemsecure personalized transactions includes a method of token mobilecaching that includes generating with a networked server a token forperforming an electronic transaction over a public network with a clientdevice. The method may further include providing the token to the clientdevice over the public network. The method may further include storingthe token along with information that uniquely identifies the client towhich the token was provided in a memory accessible to the server. Themethod may further include comparing the stored information thatuniquely identifies the client to which the token was provided withclient identification information received with the token to determineif conducting the electronic transaction should be authenticated. Thecomparing may be performed in response to receiving an electronicmessage from a client device at the server to conduct an electronictransaction using the token over the public network. In an example, theelectronic message may include information derived from a secure elementassociated with the client to which the token was provided.

To enhance mobile transaction security, tokenization as described hereinmay facilitate reducing confidential information exchange among devices.However, even a token may be captured by a third party and attempted tobe used for an unauthorized transaction. Therefore, caching of mobileinformation related to tokenization may ensure that a token is receivedfrom a mobile device to which it was delivered. This may be accomplishedby sharing token and mobile identification information over a secureacquisition channel between an issuer of the token (e.g. an issuingbank) and a POS/service provider so that when a mobile device providesthe token, if the mobile device identification information does notmatch the token, the transaction can be denied. Likewise, caching ofmobile-related information associated with a token may be retained at apayment facilitator such as an issuing bank. This information may becompared to a tokenized acquisition transaction from a POS device. In anexample, a mobile device and a bank may exchange information over an IPnetwork so that a token is provided to the mobile device for conductingone or more POS transactions. The mobile device may submit a token to aPOS device along with mobile device identification information. This setof information may be optionally further tokenized and/or sent as a setto an issuing bank (e.g. over a secure acquisition channel). The issuingbank may compare the cached mobile related information associated withthe token received from the POS device to the mobile device informationreceived from the POS and only authorize the transaction if theinformation favorably compares.

The methods and systems described herein of multi-domain ecosystemsecure personalized transactions includes a method of tokenizing awrapper in a secure personalized transaction through a multi-domainecosystem. The method may include receiving an electronic transactionmessage in a secure personalized transaction comprising a plurality ofinformation fields at a networked device in the multi-domain ecosystem.The method may further include

determining with the device a type and a content for each of theplurality of information fields. The method may further include mappingat least a portion of the plurality of information fields to commonformat message fields. The method may further include configuring acommon format transaction message based on the mapping. The method mayfurther include wrapping the common format transaction in a protocolabstraction content wrapper. The method may further include configuringa token comprising the protocol abstraction content wrapper. The methodmay further include transmitting the wrapped common format transactionmessage from the networked device to a second networked device in themulti-domain ecosystem.

With reference to FIG. 43, there is illustrated a method of generating atoken for an electronic transaction wrapper for secure contenttraversing a network in a dynamic ecosystem for secure commerce andpayment transactions according to exemplary and non-limitingembodiments. A protocol 4302 for a particular ecosystem may be used tostore and communicate protocol private information elements 4304 withina dynamic ecosystem for secure commerce and payment transactions.Protocol private information elements may include a credit cardexpiration date, primary account number (PAN), card holder's name, cardholder's address, and the like. The protocol 4302 may organize theprotocol private information elements 4304 in a specific order orconfiguration. For example the expiration date may be held in a firstposition, the primary account number in the second position, the cardholder's name in a third position and the card holder's address in afourth position. The protocol 4302 may store protocol privateinformation elements 4304 in a particular configuration. For example, aprotocol 4302 may store the credit card expiration date in a MM/YYYYformat.

With continued reference to FIG. 43, a wrapper 4306 may be used to storeand communicate wrapper private information elements 4308 for multipleecosystems among dynamic ecosystems for secure commerce and paymenttransactions. Wrapper private information elements may include a creditcard expiration date, primary account number (PAN), card holder's name,card holder's address, account balance, credit limit, and the like. Thewrapper 4306 may organize the wrapper private information elements 4308in a specific order or configuration. For example the primary accountnumber may be held in a first position, the expiration date in thesecond position, the card holder's name in a third position, the cardholder's address in a fourth position, the account balance in a fifthposition, and the credit limit in a sixth position. The wrapper 4302 maystore protocol private information elements 4306 in a particularconfiguration. For example, a wrapper 4306 may store the credit cardexpiration date in a YYYY/MM format.

With continued reference to FIG. 43, a translation process 4310 may beused to map protocol private information elements 4304 to wrapperprivate information elements 4308. For example the translation process4314 may take the expiration date protocol private information elementfrom the first position of the protocol 4302 and place it in the secondposition of the wrapper 4306 and translate the configuration of theprivate information element, MM/YYYY, to match the configuration of thewrapper information element YYYY/MM.

With continued reference to FIG. 43, a tokenization process 4314, may beused to replace the wrapper private information elements with a token4312. The token 4312 may consistent of numeric characters, alphabeticcharacters, a combination of alphabetical and numeric characters, atruncated primary account number with alphabetic and numeric charactersreplacing the middle digits of the primary account number, and the like.The token 4312 may be a one-time use token 4312. The token 4312 may beissued by a trusted entity in the dynamic ecosystem for secure commerceand payment transactions. The trusted entity may be a server located atthe payment gateway, acquirer, or issuer. The token 4312 may begenerated as a mathematically reversible cryptographic function, aone-way non-reversible cryptographic function, or assigned through anindex function, sequence number or a randomly generated number.

The methods and systems described herein of multi-domain ecosystemsecure personalized transactions includes a method of tokenizing awrapper in a secure personalized transaction through a multi-domainecosystem. The method may include receiving a wrapper for an electronictransaction message in a secure personalized transaction at a networkeddevice in the multi-domain ecosystem. The method may further includeconfiguring a token comprising the wrapper and transactionidentification information at the networked device. The method mayfurther include electronically transmitting the token to a source of thewrapper for an electronic transaction message and to a service providerserver disposed in the multi-domain ecosystem. The method may furtherinclude transmitting authentication of the token, along with tokenidentification information from the source of the wrapper for anelectronic transaction message to the service provider server forauthenticating the transaction identified by the token. In an example,the service provider may be an instrument issuer. In an example, theservice provider may access confidential information that is notaccessible to the networked device to facilitate authenticating thetransaction identified by the token. In an example, the confidentialinformation may be associated with a digital wallet disposed on a devicefrom which the authentication of the token is transmitted. In anexample, transmitting authentication of the token may be facilitated bya provider-specific widget executing on a device from which the wrapperfor an electronic transaction message is sourced.

With reference to FIG. 44, there is illustrated a method of tokenizationof transaction wrapper in a dynamic ecosystem 4402 for secure commerceand payment transactions according to exemplary and non-limitingembodiments. A point-of-sale device 4404 may connect to a mobile wallet4406 running on a mobile device 4408. In exemplarily and non-limitingembodiments, multiple mobile wallets may be running on the mobiledevice. The point-of-sale device 4404 may communicate with the mobilewallet 4406 running on the mobile device 4408 over a communication link4410. The communication link 4410 may be a wired communication link, awireless communication link, an NFC link, a Bluetooth link, a local areanetwork link, a wide area network link or the like.

With continued reference to FIG. 44, the mobile wallet 4406 running onthe mobile device 4408, may establish a secure channel with the issuingbank 4412. The secure channel 4414 may be established directly betweenthe mobile wallet 4406 running on the mobile device 4408 or through anover the air interface 4414, such as through a service provider 4416 anda network 4418. Upon authorization, the issuing bank 4412 may generate atoken and map it to the wrapper information stored at the issuing bank4412. The token will then be sent to the mobile wallet 4106 running onthe mobile device 4108 and the mobile wallet 4106 running on the mobiledevice 4408 will use the token to complete the transaction at thepoint-of-sale device 4404. The mobile wallet 4406 running on the mobiledevice 4408, may generate and store a stack of tokens uponpersonalization of the mobile wallet 4406 and use these tokens tocomplete the transaction at the point-of-sale device 4404. The mobilewallet 4406 running on the mobile device 4408, may generate, at the timeof the transaction, and use a token to complete the transaction at thepoint-of-sale device 4404.

The methods and systems described herein of multi-domain ecosystemsecure personalized transactions includes a method for performingtokenized electronic transactions in a multi-domain ecosystem for securepersonalized transactions. The method includes generating a tokenrepresenting an electronic transaction message that identifies at leastone transaction and at least one ecosystem participant in thetransaction. The method may further include wrapping the tokenrepresenting the electronic transaction message and providing a wrapperthat may include a token representing an electronic transaction message.The method may further include generating a token representing thewrapper and providing a tokenized wrapper for a tokenized representationof an electronic message. The method may further include performing anelectronic transaction between two participants in the ecosystem bytransmitting the tokenized wrapper between two the two participants. Inan example one of the two participants in the ecosystem may be the atleast one ecosystem participant.

With reference to FIG. 45, there is illustrated a method of performingelectronic transactions across an open network by transmitting adynamically generated tokenized wrapper that includes a tokenrepresenting transaction content in a dynamic ecosystem 4502 for securecommerce and payment transactions according to exemplary andnon-limiting embodiments. A point-of-sale device 4504 may connect to amobile wallet 4506 running on a mobile device 4508. Multiple mobilewallets may be running on the mobile device. The point-of-sale device4504 may communicate with the mobile wallet 4506 running on the mobiledevice 4508 over a communication link 4510. The communication link 4510may be a wired communication link, a wireless communication link, an NFClink, a Bluetooth link, a local area network link, a wide area networklink or the like.

With continued reference to FIG. 45, the point-of-sale device 4504 mayreceive tokenized information from the mobile wallet 4506 running on themobile device 4508, wrap the tokenized information in a tokenizedwrapper and send the wrapper information to the mobile device which maycommunicate the tokenized wrapper that includes tokenized content to anissuing bank 4512 associated with the mobile wallet for authorization.The mobile device 4508 may transmit the tokenized wrapper with tokenizedcontent to the issuing bank directly through an over the air interface4514 or through a service provider 4516 and a network 4518. Thetokenized information and/or the tokenized wrapper may consistent of anumeric characters, alphabetic characters, a combination of alphabeticaland numeric characters, a truncated primary account number withalphabetic and numeric characters replacing the middle digits of theprimary account number, and the like. The token may be a one-time usetoken. The token may be issued by a trusted entity in the dynamicecosystem for secure commerce and payment transactions. The trustedentity may be a server located at the payment gateway, acquirer, orissuer. The token may be generated as a mathematically reversiblecryptographic function, a one-way non-reversible cryptographic function,or assigned through an index function, sequence number or a randomlygenerated number.

In an example of protocol abstraction in transaction flow that includesmultiple acquisition methods with multiple issuing banks a merchant maywish to utilize multiple payment information acquisition devices frommultiple issuing banks, such as near-field communication (NFC), abarcode reader, and Bluetooth, in order to offer choices in paymentmethods to the merchant's customers. In this example, protocolabstraction would be used at the merchant's point-of-sale terminal, inorder to allow the multiple payment acquisition devices to communicateto a single point-of-sale terminal, via a single communication protocoland link, such as Internet Protocol, by abstracting the individualacquisition protocols for each acquisition device, into a singleprotocol understood by the merchant's point-of-sale terminal, which canthen be routed to multiple issuing banks, over one or more communicationprotocols and links.

In an example of protocol abstraction in transaction flow that includesmultiple acquisition methods with a single issuing bank, referring toFIG. 46, a merchant may wish to utilize multiple payment informationacquisition devices from a single issuing bank 4602, such as near-fieldcommunication (NFC) 4604, a barcode reader 4606, and Bluetooth 4608, inorder to offer choices in payment methods to the merchant's customers.In this example, protocol abstraction would be used at the merchant'spoint-of-sale terminal 4610, in order to allow the multiple paymentacquisition devices to communicate to a single point-of-sale terminal,via multiple protocols and links 4612, by abstracting the multipleacquisition protocols for each acquisition device, into a singleprotocol understood by the merchant's point-of-sale terminal, which canthen be routed to the issuing bank, over a single communication protocoland link 4614.

In an example of protocol abstraction in transaction flow that includesa single acquisition method with multiple issuing banks, a merchant maywish to utilize a single payment information acquisition device toacquire payment information from multiple issuing banks, such asnear-field communication (NFC), a barcode reader, and Bluetooth, inorder to offer choices in payment methods to the merchant's customers.In this example, protocol abstraction would be used from the merchant'spoint-of-sale terminal, in order to allow the single payment acquisitiondevice to communicate with a single point-of-sale terminal, via a singlecommunication protocol and link, such as Internet Protocol, thenabstracting the individual acquisition protocol for the singleacquisition device into multiple communication protocols for themultiple issuing banks, allowing the appropriate transactions to berouted to the correct issuing banks, over multiple communicationprotocols and links.

In an example of protocol abstraction in over-the-air transaction flowthat includes multiple acquisition methods and multiple issuing banks,multiple issuing banks may wish to send authorization information to amerchant that utilizes multiple payment information acquisition devices,such as near-field communication (NFC), a barcode reader, and Bluetooth,in order to offer choices in payment methods to the merchant'scustomers. In this example, protocol abstraction would be used at themerchant's point-of-sale terminal, in order to allow the multipleissuing banks to communicate to a single point-of-sale terminal, via asingle communication protocol and link, such as Internet Protocol, byabstracting the individual communication protocols for each issuingbank, into a single protocol understood by the merchant's point-of-saleterminal, which can then be communicated each acquisition device,multiple communication protocols and links.

In an example of protocol abstraction in over-the-air transaction flowthat includes multiple acquisition methods and a single issuing bank, asingle issuing bank may wish to send authorization information to amerchant that utilizes multiple payment information acquisition devices,such as near-field communication (NFC), a barcode reader, and Bluetooth,in order to offer choices in payment methods to the merchant'scustomers. In this example, protocol abstraction would be used at themerchant's point-of-sale terminal, which connects to the single issuingbank, via a single communication protocol and link, such as InternetProtocol, and abstracting the individual communication protocol for theissuing bank, into multiple protocols understood by each acquisitiondevice, which can then be communicated to one or more acquisitiondevices, over one or more communication protocols and links.

In an example of protocol abstraction in over-the-air transaction flowthat includes single acquisition method and multiple issuing banks (asillustrated in FIG. 47), multiple issuing banks 4702 may wish to sendauthorization information to a merchant that utilizes a single paymentinformation acquisition device, such as a near-field communication (NFC)device 4704. In this example, protocol abstraction would be used at themerchant's point-of-sale terminal 4710, in order to allow the multipleissuing banks to communicate to a single point-of-sale terminal, via asingle communication protocol and link 4712, by abstracting the multiplecommunication protocols and communication links 4714 used by multipleissuing banks, into a single protocol understood by the merchant'spoint-of-sale terminal, which can then be communicated to the singleacquisition device, via a single communication protocol and link 4712.

In an example of tokenized transactions, tokenized protocol abstraction,and tokenized wrapper, referring to FIG. 48, a user may present anNFC-enabled smartphone 4802 to a merchant's NFC reader 4804 at apoint-of-sale system 4806. The NFC-enabled smartphone 4802 dynamicallygenerates a token that contains the credit card number and expirationdate of the user and passes the token through the NFC reader 4804 to thepoint-of-sale system 4806. The point-of-sale system 4806 passes thetoken to the mobile transaction platform server 4808 at the issuing bank4810. The mobile transaction platform server 4808 at the issuing bank4810 decrypts the token using a key that resides only on the mobiletransaction platform server, authenticates the transaction, and sends anauthorization code back to the point-of-sale system 4806. Thepoint-of-sale system 4806 then completes the transaction with the userthrough the NFC reader 4804.

Further in this example, multiple issuing banks may wish to sendauthorization information to a merchant that utilizes multiple paymentinformation acquisition devices, such as near-field communication (NFC),a barcode reader, and Bluetooth, in order to offer choices in paymentmethods to the merchant's customers. In this example, protocolabstraction could be used at the merchant's point-of-sale terminal, inorder to allow the multiple issuing banks to communicate to a singlepoint-of-sale terminal, via a single communication protocol and link,such as Internet Protocol, by abstracting the individual communicationprotocols for each issuing bank, into a single protocol understood bythe point-of-sale terminal, which can then be communicated eachacquisition device, via multiple communication protocols and links.

Also, user A may present an NFC-enabled smartphone to a merchant's NFCreader that uses protocol X and user B may present a bar code displayedon a smartphone to the merchant's bar-code reader that uses protocol Yat the point-of-sale system. The smartphones of both users dynamicallygenerate a tokens that contain the credit card number and expirationdate of the respective user and passes the token through the NFC readerfor user A and the bar-code reader for user B to the point-of-salesystem. The point-of-sale system abstracts the different protocols usedby the NFC and bar-code readers to communicate to the point-of-sale intoa single protocol that cane used to communicate the information for bothtokens to the mobile transaction platform server at the issuing bank viaa single protocol and single communication link. The mobile transactionplatform server at the issuing bank decrypts the tokens using keys thatreside only on the mobile transaction server, authenticates thetransactions, and sends authorization codes back to the point-of-salesystem. The point-of-sale system then converts the abstracted protocolback into the individual protocols used by the NFC and bar code readersto complete the transactions with User A and User B.

In an alternate example, an issuing bank may wish to send authorizationinformation to a merchant that utilizes multiple payment informationacquisition devices, such as near-field communication (NFC), a barcodereader, and Bluetooth, in order to offer choices in payment methods tothe merchant's customers. In this example, a tokenized wrapper could beused at the merchant's point-of-sale terminal, in order to allow themultiple issuing banks to communicate to a single point-of-saleterminal, via a single communication protocol and link, such as InternetProtocol, by abstracting the individual communication protocols for eachissuing bank, into a single protocol understood by the point-of-saleterminal, which can then be communicated each acquisition device, viamultiple communication protocols and links. In yet another example, userA may present an NFC-enabled smartphone to a merchant's NFC reader thatuses protocol X and user B may present a bar code displayed on asmartphone to the merchant's bar-code reader that uses protocol Y at thepoint-of-sale system. The smartphones of both users send the credit cardnumber and expiration date of the respective users and pass the creditcard numbers and expiration dates through the NFC reader for user A andthe bar-code reader for user B to the point-of-sale system. Thepoint-of-sale system wraps the different protocols used by the NFC andbar-code readers to communicate to the point-of-sale system into asingle protocol that can be used to communicate the information for bothcredit card numbers and expiration dates to the mobile transactionplatform server at the issuing bank via a single protocol and singlecommunication link. The mobile transaction platform server at theissuing bank replaces the credit card numbers and expiration dates withtokens and sends the tokens back to the point-of-sale system. Thepoint-of-sale system then converts the wrapped tokens back into theindividual protocols used by the NFC and bar code readers and passes thetokens back to the NFC and bar-code readers. The NFC and bar-codereaders then replace the credit card numbers and expiration dates withthe tokens.

The methods and systems described herein of multi-domain ecosystemsecure personalized transactions includes a mobile transactionprocessing system that includes a plurality of servers and a pluralityof client devices deployed in a network. Each server may be configuredto facilitate secure personalized transactions among the plurality ofclient devices and a plurality of service provider servers in thenetwork. Further, at least one of the plurality of client devices may beconfigured with a multi-tenant capable wallet operable in acontainer-based execution environment. The wallet may be accessiblethrough a widget that may be disposed on the at least one of theplurality of client devices. Additionally, the plurality of servers mayfurther be configured to facilitate transactions between the at leastone of the plurality of client devices through the widget and at leastone of the plurality of service provider servers through any of aplurality of trust models including a single trust domain, a singletrust cluster, multiple trust clusters, and a direct trust relationship.In an example, the plurality of distinct trust models may include atleast one of a single trust domain, a single trust cluster, multipletrust clusters, and direct trust relationship. In an example, the singletrust domain may comprises a central wallet service center server thatmay interface with an electronic wallet on a user device. The centralwallet service center server may facilitate establishing securetransaction channels with trusted service providers. In an example, thesingle trust cluster may comprise a trusted third party server forsecurely exchanging confidential wallet information with a personalelectronic wallet and a wallet service center server for facilitatingdirect authentication of the user by a each of a plurality of serviceproviders via the third party server. In an example, the wallet servicecenter server may deliver user identification and security keys to atleast one of the plurality of service providers. In an example, multipletrust clusters may comprise a plurality of distinct trusted thirdparties. Each third party may be configured with at least a server forexchanging confidential wallet information with a personal wallet andfurther for exchanging user and/or device identification provided by awallet service center with a plurality of cluster-specific serviceproviders.

In an example, a direct trust relationship may comprise a home walletservice center server for establishing transaction context with anelectronic wallet. The home wallet service center server may facilitateestablishing an authenticated transaction channel directly between theelectronic wallet and the service provider. In an example, the widgetmay be configured for secure interaction with a specific provider. In anexample, the widget may be configured for secure interaction through anintermediary with a specific provider. In an example, the widget may beconfigured on the mobile device over the air through an electronicinteraction between the mobile device and a networked server associatedwith the specific provider.

The mobile transaction platform as described herein may facilitateconducting secure personalized transactions in an ecosystem via aplurality of distinct trust models. Each transaction between a clientdevice in the ecosystem and a service provider server or the like in theecosystem may be conducted via distinct trust models based on a varietyof factors related to the transaction, the ecosystem configuration, andthe like. Likewise, a service provider, or other participant in theecosystem may determine a preferred or default trust model by whichtransactions are conducted with the service provider. By providingsupport for transaction-specific trust model determination, the platformmay facilitate dynamic trust model determination and transactional usethat can be influenced by a plurality of factors including transactionalfactors, ecosystem instantiation factors, service-provider preferencefactors, mobile network provider preferences, and the like.

Trust models may include single trust domain models, single trustcluster models, multiple trust cluster models, direct trustrelationship, and the like. A single trust domain model is characterizedby a one-to-one relationship between a mobile device and a mobiletransaction platform server (also referred herein as a Wallet ServiceCenter (WSC) server. However, the WSC experiences a one-to-manyrelationship with implicitly trusted service providers. The devicewallet and the WSC handle user authentication, payment authentication,and the like for the service providers who rely on the WSC to ensuretransaction and end user integrity. FIG. 49 depicts an embodiment of asingle trust domain model. A device wallet 4902 communicates directlywith a WSC server 4904 in a one-to-one relationship as described above.Each of a plurality of trusted service provider servers 4908 a and 4908b communicate over a network with the WSC server 4904. The WSC server4904 may perform all wallet and user related authentication, validation,payment approval, and the like, while service providers 4908 implicitlytrust the WSC server 4904 for this purpose. A user of the wallet 4902may conduct transactions through the WSC server 4904 to any of a varietyof service providers 4908 without needing to share confidential orpersonally identifiable information with the service provider.

Trust models may also include a single trust cluster model as depictedin FIG. 50, which assumes that a trusted third party (TTP) 5002 isaccessible in the ecosystem. The service providers 4908 do not maintaina direct trust relationship with the end-user via the device 4902, nordo they maintain an implicit trust relationship with a WSC 4904.Instead, the WSC 4904 performs authentication of the user/mobile device4902 and may share such authentication via a ticket or token that themobile device 4902 can explicitly provide to the TTP 5002 wheretransactions between an end user 4902 and a service provider 4908 may beconsummated. An MTP Server 4904 maintains a strong relationship with theTTP 5002, and acts as a user registration entity. For example, in PKIauthentication, the MTP Server 4904 acts as an RA (RegistrationAuthority), while CA (Certification Authority) is considered to be a TTP5002. As noted, service providers do not necessarily trust the MTPServer 4904 for authentication; however, the MTP Server 104 is trustedas an identification provider (IdP). Each service provider 4908 canauthenticate the user identified by this ID, using the credentialsforwarded by MTP Server 4904. A transaction is conducted via an explicittrust relationship between a wallet 4902 and a TTP 5002, wherein awallet and a TTP can identify and authenticate each other securely. TheWallet's credentials need not be shared with the MTP Server.

Trust models may include a multiple trust cluster model as depicted inFIG. 51, which may include a distinct TTP 5002 for each of a pluralityof service provider clusters 5102. Each cluster-specific TTP mayestablish direct trust with a wallet 4902. The MTP server 4904 performsuser registration, identity providing, and the like as depicted anddescribed with respect to FIG. 50.

Trust models may also include a direct trust relationship as depicted inFIG. 52, in which no two entities are compelled to trust each other.Each service provider 5204 maintains a direct credential with theuser/client 4902 and authenticates directly.

The main characteristics of this model include: wallet/user 4902maintains a credential for each service provider 5204 separately. Foreach transaction/service, the wallet has to be authenticated by eachentity involved in the service fulfillment. A MTP Server does notcontrol all aspects of a transaction; rather a transaction context isshared between each service provider. A wallet can use any type ofauthentication with the service provider, as far as it meets thesecurity/risk requirements of the service provider. In an example, for abill issuer authentication can be as simple as user's zipcode andmother's maiden name. For a payment service provider, this can be acredit card CVV or VbV/SecureCode password. Other authentication methodscan be incorporated into direct trust relationship models includingwithout limitation, three-dimensional authentication of the user,device, and domain.

The methods and systems of transaction processing with a plurality oftrust models may include providing a multi-domain ecosystem platform forsecure personalized transactions capable of operating with a pluralityof distinct trust models. In such methods and systems a mobiletransaction processing system may be configured with a plurality ofservers and a plurality of client devices deployed in a network. Eachserver may be configured to facilitate secure personalized transactionsamong the plurality of client devices and a plurality of serviceprovider servers in the network. The system may include at least one ofthe plurality of client devices configured with a multi-tenant capablewallet operable in a container-based execution environment, wherein thewallet is accessible through a widget disposed on the at least one ofthe plurality of client devices. The plurality of servers in the systemmay be further configured to facilitate transactions between the atleast one of the plurality of client devices via the widget and at leastone of the plurality of service provider servers via any of a pluralityof trust models including a single trust domain, a single trust cluster,multiple trust clusters, and a direct trust relationship. A single trustdomain may comprise a central wallet service center server thatinterfaces with an electronic wallet on a user device and facilitatesestablishing secure transaction channels with trusted service providers.A single trust cluster may comprise a trusted third party server forsecurely exchanging confidential wallet information with a personalelectronic wallet and a wallet service center server for facilitatingdirect authentication of the user by a each of a plurality of serviceproviders via the third party server, wherein the wallet service centerserver delivers user identification and security keys to at least one ofthe plurality of service providers. Multiple trust clusters may comprisea plurality of distinct trusted third parties each configured with atleast a server for exchanging confidential wallet information with apersonal wallet and further for exchanging user and/or deviceidentification provided by a wallet service center with a plurality ofcluster-specific service providers. Also, a direct trust relationshipcomprises a home wallet service center server for establishingtransaction context with an electronic wallet that facilitatesestablishing an authenticated transaction channel directly between theelectronic wallet and the service provider. The widget disposed on theclient device(s) may be configured for secure interaction with aspecific service provider or through an intermediary with a specificprovider. The widget may further be configured on the mobile device overthe air through an electronic interaction between the mobile device anda networked server associated with the specific provider.

The methods and systems described herein of multi-domain ecosystemsecure personalized transactions includes a secure mobile walletoperative on a mobile device. The secure mobile wallet may include aplurality of distinct user accounts. In an example, access to a distinctuser account may be facilitated by a provider-specific trust modelthrough a widget disposed on the mobile device. In an example, thewidget may be configured for secure interaction with a specificprovider. In an example, the widget may be configured for secureinteraction through an intermediary with a specific provider. In anexample, the widget may be configured on the mobile device over the airthrough an electronic interaction between the mobile device and anetworked server associated with the specific provider.

The methods and systems described herein of multi-domain ecosystemsecure personalized transactions includes a method of trust modeldetermination for a mobile transaction in an ecosystem for securepersonalized transactions. The method may include configuring aplurality of servers deployed in a network to facilitate transactionsbetween a client device and a provider-specific server through any of aplurality of trust models. The plurality of trust models may includesuch as a single trust domain, a single trust cluster, multiple trustclusters, and a direct trust relationship. The method may furtherinclude analyzing a default trust model for a transaction between themobile device and the provider-specific server to determine a measure ofrisk associated with the transaction. The method may further includeconducting the transaction through one of the default trust model andanother trust model from the plurality of trust models, based on theresulting measure of risk. In an example, conducting the transaction mayinclude accessing a wallet function on the mobile device via aprovider-specific widget executing on the mobile device. The theprovider-specific widget may be selected based on the resulting measureof risk. In an example, the measure of risk may be based on a locationof the mobile device. In an example, the measure of risk may be based ona location of the provider-specific server relative to a location of themobile device. In an example, the measure of risk may be based onaspects of a network over which the mobile device is conducting thetransaction.

The methods and systems of secure personalized transactions in anecosystem may include a mobile wallet that is capable of operating witha plurality of distinct trust models. Such a secure mobile wallet may beoperative on a mobile or other client device and may comprise aplurality of distinct user account. Access to a distinct user accountmay be facilitated by a provider-specific trust model via a widgetdisposed on the mobile device. As noted above the widget disposed on theclient device(s) may be configured for secure interaction with aspecific service provider or through an intermediary with a specificprovider. Also as noted above, the widget may further be configured onthe mobile device over the air through an electronic interaction betweenthe mobile device and a networked server associated with the specificprovider.

The mobile transaction processing system as described herein forproviding an ecosystem for secure personalized transactions mayfacilitate trust model determination for a mobile transaction. Modeldetermination may include configuring a plurality of servers deployed ina network to facilitate transactions between a client device and aprovider-specific server via any of a plurality of trust modelsincluding a single trust domain, a single trust cluster, multiple trustclusters, and a direct trust relationship. Model determination mayfurther include analyzing a default trust model for a transactionbetween the mobile device and the provider-specific server to determinea measure of risk associated with the transaction. Based on theresulting measure of risk, the transaction may be conducted via thedefault trust model or another trust model selected from the pluralityof trust models that include a single trust domain, a single trustcluster, multiple trust clusters, and a direct trust relationship.

Conducting the transaction may include accessing a wallet function onthe mobile device via a provider-specific widget executing on the mobiledevice. The provider-specific widget may be selected based on theresulting measure of risk, which may be based on a location of themobile device or a location of the provider-specific server relative toa location of the mobile device. Also, the measure of risk may be basedon aspects of a network over which the mobile device is conducting thetransaction.

The methods and systems described herein of multi-domain ecosystemsecure personalized transactions includes a domain-specific programlanguage for use in an ecosystem. The ecosystem may include aninstrument issuer, a service provider, an acquirer, and a client. Thedomain-specific program language may include a syntax that may becompliant with such as XML, CSS, and Javascript. The language mayfurther include an object that may enable a wallet-related function on aclient device. In an example, the enabled wallet-related function may beat least one of a wallet container, a wallet, a widget, and a walletcompanion applet.

The mobile transaction platform methods and systems that facilitatesecure personalized transactions in a multi-domain ecosystem may includean multi-domain ecosystem domain-specific language that supports XML,CSS, Javascript and the like for creating wallets and widgets that maybe configured to operate as a runtime component of a container. Such alanguage may include one or more objects, tags, metadata elements andthe like that may enable a container, wallet, widget, companion appletand the like. The multi-domain ecosystem domain-specific language mayprovide domain specific Javascript or XML functions to access a varietyof modules, functions, and services of the mobile transaction platform.In addition, functions for enabling NFC operations, accessing barcodeinformation, and the like may also be included.

By creating a domain-specific set of functions within a standardizedsoftware pattern (e.g. an official language), the domain-specificlanguage reveals functions through standardized patterns so that usersand software-related architects may readily determine that adomain-specific language is being patterned. This domain-specificlanguage is applied to software programming and module configuration ofan ecosystem that is described herein to, among other things, simplifygenerating code to take action for that domain. Each domain-specificfunction may represent a uniquely novel aspect of the domain-specificlanguage. The software development environment of the MTP may allow useof the domain-specific set of functions as a variant of thedomain-specific language. In an example, adapting the domainspecific-language with a wallet enabling function may provide a modifiedlanguage that is particularly suited for development of functions thatenable creation of services that support secure, personalized, mobiletransaction services. A developer can use the MTP domain-specificlanguage to create services based on the set of functions that may bespecific for creating secure mobile transactions. As a domain-specificlanguage, there may be provided native tools to check the language;validate the use of it; and ensure that encryption is properly used.

The methods and systems described herein of multi-domain ecosystemsecure personalized transactions includes a platform for serving securepersonalized transactions in a multiple domain ecosystem. The platformmay include an interpreter for interpreting domain-specific programlanguage objects for enabling wallet-related functions that are relevantto at least one of the multiple domains. In an example, the interpretermay be a runtime interpreter. In an example, the interpreter may be aruntime container executing on a client device. In an example, theenabled wallet-related function may be at least one of a walletcontainer, a wallet, a widget, and a wallet companion applet.

In addition to an XML, CSS, and Javascript compliant language, the MTPmay include a domain-specific language interpreter that may operate onthe client device (e.g. as part of the runtime client). The runtimeitself may be a language interpreter, which interprets the code based onthe domain-specific language and executes that functionality on theclient (e.g. a mobile phone). A client operable runtime (e.g. container)may facilitate interpreting domain specific language elements that arerelevant to a domain, such as the multi-domain ecosystems for securepersonalized transactions described herein. Although the description ofthe domain-specific language is based on a standard language that isJavascript, XML, and CSS compliant, the domain-specific language couldbe based on nearly any interpreted language (e.g. VB script, visualbasic, and the like).

Such a domain-specific programming language for use in an ecosysteminvolving an instrument issuer, a service provider, an acquirer, and aclient, may include a syntax that is compliant with XML, CSS, andJavascript, and a domain-specific object/element/tag that enables awallet-related function on a client device. In particular, the enabledwallet-related function may be a wallet container, a wallet, a widget, awallet companion applet, or a combination thereof.

A platform for serving secure personalized transactions in a multipledomain ecosystem, such as an MTP may include an interpreter forinterpreting domain-specific program language objects for enablingwallet-related functions that are relevant to at least one of themultiple domains. The interpreter may be a runtime interpreter, aruntime container executing on a client device, and the like. Also, theenabled wallet-related function may be at least one of a walletcontainer, a wallet, a widget, and a wallet companion applet.

The methods and systems described herein of multi-domain ecosystemsecure personalized transactions includes a set of tools for securingcontent in a multi-domain ecosystem. The set of tools may include asoftware development kit for constructing a mobile transactionecosystem. The set of tools may further include a set of domain-specificfunctions for enabling client-side functionality of at least one of awidget, a wallet, a container, and a companion applet. The set of toolsmay further include device agnostic application programming interfaces.The set of tools may further include device-specific applicationprogramming interfaces. The set of tools may further include enablingtier functions for facilitating interoperation with client devicesoftware and hardware. The set of tools may further include widgetpublishing modules to facilitate availability of provider-specificwidgets for delivery and downloading to a client device.

As described herein, a software development kit (SDK) for a mobiletransaction processing platform (MTP) may facilitate securing content ina multi-domain ecosystem for secure personalized transactions. The MTPSDK may provide service provider programmers and the like with tools forimplementing and configuring transaction workflows, serviceprovider-specific widgets for use on client devices, wallets thatinclude device specific and device agnostic capabilities that may beaccessed through APIs, and the like to secure content. The SDK leveragesan on-device runtime container that further facilitates isolatingwidgets, wallets, and the like to facilitate seamless content security.The runtime container, also referred herein and elsewhere as mClient mayalso include a user interface framework, and a workflow engine thatprovide service execution, actions, application (e.g. widget) executioncontrol, scripting, and communication support for a variety ofcommunication channels. The MTP tools for securing content in amulti-domain ecosystem for secure personalized transactions mayfacilitate a development process that includes defining businessrequirements, creating user interface flows, developing widgets,applets, and server-based applications, building and testing thedeveloped elements.

The methods and systems described herein of multi-domain ecosystemsecure personalized transactions includes a network-enabled server forconfiguring a set of service provider tools for a multi-domain ecosystemfor secure personalized transactions. The network-enabled server mayinclude a mobile transaction platform server. The network-enabled servermay further include a wallet service center development environmentoperable on the platform server. The network-enabled server may furtherinclude a wallet service center runtime module operable on the platformserver. The network-enabled server may further include a softwaredevelopment kit for constructing and maintaining server-based andclient-based elements of the ecosystem. In an example, the elements ofthe ecosystem may include wallets, widgets, companion applets, andcontainers.

The MTP may comprise a platform for configuring a set of serviceprovider tools for a multi-domain eco system for secure personalizedtransactions. The MTP may comprise a network-enabled server forconfiguring a set of service provider tools including a wallet servicecenter development environment operable on the network-enabled server, awallet service center runtime module operable on the server, and asoftware development kit for constructing and maintaining server-basedand client-based elements of the ecosystem. The client-based elementsthat may be maintained may include wallets, widgets, companion applets,containers, and the like.

A widget configuration capability of a mobile transaction platform mayinclude one or more applications operable on a client device in anecosystem. The widget configuration application(s) may include a userinterface that initially appears as a gray widget. The configurationapplication may include a user interface by which widget user interfaceicons and the like may be positioned in the gray widget, customized inlook and feel (e.g. layouts, color, etc) and saved on the client devicefor use as a validated widget. Such a widget configuration applicationmay enable user-specific customization of widget interfaces.

The methods and systems described herein of multi-domain ecosystemsecure personalized transactions includes a mobile application forin-situ customizing of a portion of a widget. The mobile application mayinclude a user interface template for receiving widget functional codeand descriptors from a widget development process performed on anetworked server. The mobile application may further include a userinterface for facilitating access to widget features and functionsthrough icons defined by a widget descriptor. The mobile application mayfurther include an algorithm for configuring a widget downloaded to thedevice on which the user interface may be displayed based on useractions detected in the user interface. In an example, the userinterface template may be automatically configurable based on the widgetdescriptor. In an example, the application for in-situ customizing of aportion of a widget may operate on a mobile device. In an example, theapplication may execute within an mClient container runtime environment.

The MTP may include a mobile application for in-situ customizing of aportion of a widget that may include a user interface template forreceiving widget functional code and descriptors from a widgetdevelopment process performed on a networked server, a user interfacefor facilitating access to widget features and functions via iconsdefined by a widget descriptor, and an algorithm for configuring awidget downloaded to the device on which the user interface is displayedbased on user actions detected in the user interface. The applicationmay automatically configure the user interface template based on thewidget descriptor. The application for in-situ customizing of a portionof a widget may be adapted to operate on a mobile device. Theapplication may execute within an mClient container runtime environment.

The methods and systems described herein of multi-domain ecosystemsecure personalized transactions includes a server-based applicationthat includes a set of reference mobile transaction platform services.The application may further include an automated wizard application foraccessing the set of reference services and configuring at least oneservice from the set of reference services based on user input. In anexample, the automated wizard application may facilitate in configuringat least one of client element distribution, issuer environments,settlement environments, aggregation services, transaction mediumsupport, support for handset types, user experience, business model, andregulatory considerations based on the user input.

The methods and systems described herein of multi-domain ecosystemsecure personalized transactions includes an ecosystem configurationguidance system that includes a set of reference mobile transactionplatform services. The ecosystem configuration guidance system mayfurther include an automated wizard application for receiving user inputassociated with a desired ecosystem configuration. The automated wizardapplication may also be operable for recommending a configuration of atleast one service from the set of reference services based on the userinput. In an example, the set of reference services may include such asdistribution services, continuum use services, issuer services,settlement services, aggregation services, transaction mediumrequirements, handset and operating system considerations, userexperience factors, business modeling, and regulatory considerations. Inan example, the user input associated with a desired ecosystemconfiguration may be a hyperlink. In an example, the wizard may searchfor information based on the hyperlink and may populate at least onereference service template. In an example, the hyperlink may be a linkto a website of a service provider operating the wizard.

The mobile transaction platform may further include a wizard tofacilitate configuring a plurality of aspects of a multi-domainecosystem for secure personalized transactions. The wizard may be anautomated application or the like that accesses a set of referencemobile transaction platform services and configures at least one servicefrom the set of reference services based on user input. In an example,the automated wizard application facilitates configuring at least one ofclient element distribution, issuer environments, settlementenvironments, aggregation services, transaction medium support, supportfor handset types, user experience, business model, and regulatoryconsiderations based on the user input.

The mobile transaction platform may alternatively include an ecosystemconfiguration guidance system that may include a set of reference mobiletransaction platform services, and an automated wizard application forreceiving user input associated with a desired ecosystem configurationand recommending a configuration of at least one service from the set ofreference services based on the user input. In an example, the set ofreference services may include distribution services, continuum useservices, issuer services, settlement services, aggregation services,transaction medium requirements, handset and operating systemconsiderations, user experience factors, business modeling, andregulatory considerations.

The ecosystem configuration guidance system may receive a hyperlink asuser input associated with a desired ecosystem configuration. The wizardmay search for information based on the hyperlink and may populate atleast one reference service template.

In another example, the hyperlink may be a link to a website of aservice provider operating the wizard.

A method of type-length variable data communication among participantsin an multi-domain ecosystem for secure personalized transactions mayinclude receiving a plain old java object at a producer server that is aparticipant in the multi-domain ecosystem; converting the received plainold java object to a type length variable stream that complies with atype length variable protocol; and transmitting the converted object viaa one-way message bus from producer to a mobile device participant inthe multi-domain ecosystem. The plain old java object may conform totype length variable protocol guidelines. The type length variableprotocol may support streaming, float support, and prepended runtimeclass type information.

The present method may provide for a message bus for a mobiletransaction platform in a dynamic ecosystem for secure commerce andpayment transactions. The message bus may enable the one-way exchange ofancillary data between components within a mobile transaction platform(MTP). The message bus may be channel agnostic to allow the exchange ofdata through multiple channels. The multiple channels may be proprietaryprotocol channels, a short-messaging-service (SMS) channel, the pushnotification framework of a mobile network operator, and the like. Theproprietary protocol channel may be a type length variable (TyLV)protocol channel. The TyLV protocol channel may enable mobile devicesoftware to communicate with a transaction platform. The TyLV protocolchannel may facilitate the conversion of a plain old java object (POJO)to be converted into a TyLV protocol stream and a TyLV protocol streamto be converted into a POJO. The conversion process may be an automatedconversion process. The conversion process may require that the POJOconform to guidelines. The guidelines could require that the POJO: be apublicly defined class, implement the marker interfacecom.csam.wsc.daf.tylv.TyLVBindObject, have data member values that areall non-final, non-static, non-transient, and public, be a non-negativenumber, pass null instead of the actual value to indicate an optionalvalue, not be an anonymous class, must provide a default constructor,provide class type information for the decode operation, and the like.The TyLV protocol may also require that member value types be declared.Member value types may be: short and its wrapper Short class, int andits wrapper Integer class, long and its wrapper Long class, Boolean andits wrapper Boolean class, java.math.BigInteger, bytearray,java.util.Map and its sub types, java.util.List and its sub types,Composed user defined types implementing TyLVBindObject,java.lang.String, representing java modified UTF encoding,java.util.Date, C-SAM defined com.csam.wsc.core.util.BitSequence classtype, and the like. The TyLV protocol may also support other functions.Other functions may include inheritance support for streaming, floatsupport, runtime class type information prepended to the actual data ofthat class type, and the like. The one-way exchange may enable thesending of data objects without explicitly requiring networkround-trips. The ancillary data may not be the primary payload of aservice request. The ancillary data may be received and consumed by aconsumer, which may reside within a mobile application. The mobileapplication may be a wallet application or the like. The ancillary datamay be produced and sent by a producer. The producer may be a componentwithin the mobile transaction platform.

The message bus for a mobile transaction platform in a dynamic ecosystemfor secure commerce and payment transactions may provide for a message.The message may be an atomic packet of data that can be transmitted overa communication link. The message may be any business object that couldbe exchanged in the form of data through the message bus. The message bebe comprised of a message ID and payload. The message ID could be theunique identifier of the message determined by a developer of thesystem. The payload may be the actual data exchanged between theproducer and the consumer. The format of the payload data may be astring. The message may be sent by a component on a channel. The messagemay be received and processed by a receiver component.

The message bus for a mobile transaction platform in a dynamic ecosystemfor secure commerce and payment transactions may provide for a messagechannel. The message channel may be a virtual pipe that connects asender component to a receiver component. The sender component may writeinformation to the message channel and the receiver component may readinformation from the message channel.

The message bus for a mobile transaction platform in a dynamic ecosystemfor secure commerce and payment transactions may provide for a messageclass. The message class may be a platform message or a wallet message.The platform message may not be meant for service consumption and may beconsumed and acknowledged by the runtime. A developer may receive anotification for the message in JavaScript and the message may beflagged as consumed. The message may not be able to be acknowledged fromJavaScript. An attempt to acknowledge a platform message from JavaScriptmay be ignored. The wallet message may be made for service consumptionand acknowledgement from JavaScript. The wallet message may be producedby the server and may be transformed into an equivalent JSON format andpassed to a device.

The message bus for a mobile transaction platform In a dynamic ecosystemfor secure commerce and payment transactions may provide for consumersand producers. Consumers may be entities or components responsible forconsuming messages. Producers may be entities or components responsiblefor producing messages. Consumers may be applications running on mobiledevices. Producers may be server components. The producer may registeragainst a message ID. The message ID may uniquely identify the message.The consumer of a message may be the runtime if the data is owned by theruntime. The message may be passed to the central message handlingfunction of the container application. The producer may consume anacknowledgement for a message produced by the producer when the messageis returned by the consumer to the producer via the message bus.

With reference to FIG. 53, there is illustrated a message buscommunication architecture 5302 for a mobile transaction platform in adynamic ecosystem for secure commerce and payment transactions accordingto exemplary and non-limiting embodiments. A message may be consumedwhen the messages 5304 arrive through a channel 5306 to a message bus5308. A channel may be a set of messages. A message 5304 in the channel5306 may be an item, which will be dispatched to a consumer who hasregistered for it with the message bus 5308. The messages may bedispatched in the sequence of their occurrence on the channel. Multiplemessages 5304 may be dispatched in a batch piggybacked to the sameresponse packet.

With continued reference to FIG. 53, a consumption strategy 5316 maydetermine the process of dispatch for items. The process may be todispatch the messages 5304 in the sequence of the messages' occurrenceon the channel 5306. Multiple messages may be disputed in a batchpiggybacked to the same response packet. A consumer 5310 may send anacknowledgement when it consumes a message 5304 to indicate thesuccessful consumption of the message 5304. The acknowledgement may holdthe value indicating the successful or unsuccessful consumption of themessage 5304. The acknowledgment may be sent back to the server when amobile application sends its next request to the server. Theacknowledgement may be sent during the next request in the next newapplication session. The acknowledgement may be sent instantaneously andin real-time by the consumer 5310 initiating a special response sequenceto acknowledge processing of the message (804).

With continued reference to FIG. 53, a producer 5312 may begin messageproduction when a response is to be sent via the message bus 5308. Theregistered producers may produce messages and dispatch them on theoutput channel. The messages 5304 may then be encoded and the entirelist may then be sent via the message bus 5308. A server-based producermay produce a java object which may then be converted to an equivalentJSON object by the mobile transaction platform infrastructure. Theproduction strategy 5314 may dispatch the message on the output channelin the order of the producers registered. The mobile transactionplatform server may provide a producer registry where developersregister their respective producers. The registration order for theproducers may be the order in which the producers are invoked when thereis an opportunity to deliver a message.

In accordance with exemplary and non-limiting embodiments, the presentdisclosure provides a type-mapping scheme and type definition rules forconverting any Plain Old Java Object (POJO) to a Type Length Variable(TyLV) stream and vice-versa. The scheme may enable developers to writedevice based use cases to define POJOs, which may be converted on thefly to the corresponding TyLV stream. In an example, the TyLV stream maybe used in accordance with the TyLV protocol which may enable any devicebased software to communicate with a transaction provider to accomplisha task.

In an embodiment, on the fly streaming may help the developers inabstracting away non-essential streaming details. This in turn mayresult in freeing the developers from understanding a myriad of TyLVprotocol related details. The type mapping scheme and the typedefinition rules of the present invention may be used in defining devicebased use cases and other interactions based on the TyLV protocol.

In an example, the mapping and type definition rules may be defined andused as guidelines such as to cause POJOs to be streamed to the TyLVprotocol. A POJO which follows these defined set of guidelines may bereferred to as a TyLV compliant POJO. In an example, the guidelines mayinclude such as a rule to define a POJO as a publicly defined class.Further, the POJO may implement a marker interface such ascom.xyz.wsc.daf.tylv.TyLVBindObject. In an event of failure of such animplementation, runtime errors of the nature of ClassCastException maybe generated. in various embodiments, data members of a POJO may benon-final, non-static, non-transient and public (while all other type ofobjects may be ignored for the purpose of streaming). In an embodiment,POJO members of integral nature may not supply negative values as thefailure to do this may result in runtime exceptions being thrown with amessage such as “Decoder does not support length computation of negativenumbers”. The guidelines may include a rule to allow the POJO to declaremember variables such as short and its wrapper Short class, integer andits wrapper Integer class, long and its wrapper Long class, boolean andits wrapper boolean class, java.math.BigInteger, bytearray,java.util.Map and its sub types, java.util.List and its sub types,composed user defined types implementing TyLVBindObject, javalang.String(representing Java modified UTF encoding), java.util.Date,com.csam.wsc.core.util.BitSequence class type, and the like. In anexample, specification of a variable of a type such as other than thosedefined such as other than those mentioned above may result in runtimeexceptions. In cases such as where an object is an aggregate object, theobject may be declared as a public inner static or non-static class.

In an example, as per the rules specified for a Java class format, acompiler may generate synthetic fields for non-static inner classes.

In an example, the key value pairs such as contained withinjava.util.Map instance maybe of the type java.lang.String, andoverriding Object.toString may not be very helpful for such key valuepairs.

In an alternate example, TyLV protocol implementation may allow Booleanor Boolean data type but internally, it may encode or decode this datatypes as an 8-bit byte. Thus, a Boolean value true may be treated as 1,and a Boolean value false may be treated as 0. Also, the class typecom.xyz.wsc.core.util.BitSequence supported by TyLV protocol may beinternally treated an integer-32 value. Further, the data types may bestringized in a specific format. Additionally, a map containing zeroentries may not be allowed and a null may be used to represent map as anoptional value.

In an example, systems using TyLV protocol may support the UniversalCharacter Set or UCS Transformation Format (UTF) enncoding definitionmodified by the Java platform, as the java.lang.String types may beUniversal Character Set or UCS Transformation Format (UTF) encoded.Further, primitive type members may not be optional.

In an example, byte may be non-empty and composed types may be declaredon the basis of their concrete types rather than on the basis of theinterface they implement.

In an example, TyLV protocol may support a Homogeneous, variable length,List with objects of same type. The type of objects may be any Javaclass type or any user defined class type, and may include Wrapper typesto support primitive type data.

In an alternate example, additional guidelines related to POJOs mayinclude defining a rule for any POJO or any of its member variables suchthat passing a null value instead of an actual value may indicate anoptional value. Further, a rule may be defined such that a TyLVcompliant POJO may not support type inheritance. Also, declaring a POJOor any of its members as an Anonymous Class may result in runtimeexceptions. Additionally, a default constructor may need to be providedas the TyLV engine may not be able to use a defined constructor.

In an example, additional guidelines related to POJOs may include a rulesuch that a TyLV codec may require a class type information for decodeoperation, so that the TyLV engine may correctly identify the BindObjectinterface implementation type or List content object type which may bepopulated with decoded data appropriately. In an example, the class typeinformation may be provided as comma separated list of fully qualifiedclass name string values. In an example, the class type information isincluded herein below.

Public class Parent implements BindObject { Public BindObject child1;Public int child2; Public List child3; }

Additionally, an example of a class type declaration as ActionConfiguration Parameter may be provided in the following manner:

com.xyz.wsc.comms.Parent, com.xyz.wsc.comms. CertificateResponse,com.xyz.wsc.comms.Certificate

In the above examples, the parent class may resemble the parent classtype which may be composed of BindObject type child1, int type child2,and List type child3. Also, in the class type declaration example, thesecond class type declaration CertificateResponse may be used toidentify the run time type information for child1. Similarly, thirdclass type declaration, the Certificate, may identify the child3 contentthat may be of the type of object collected in list. The list datacontent may be provided as any of the wrapper types like Integer, Map ormay be any other valid Java type. It may result in a runtime exceptionif class type information is not provided.

In an example, additional rules may be defined regarding streaming ofobject graphs using the TyLV protocol. The streaming of object graphs inthe TyLV protocol may be similar to Java object serialization protocol.However, in the TyLV protocol, all the objects composing the graph maybe TyLV compliant. Further, a root object of the graph may almost alwaysbe an object implementing the TyLVBindObject interface.

In an example, the TyLV compliant POJOs may be defined as plain valueaggregation objects that may not contain any functionality. These POJOswhich may be defined for the purpose of TyLV streaming may be used onlyin scenarios where streaming is the prime objective. Further, puttingcomputation in the POJOs may be avoided.

In an example, probable range of values for an integral data type may beidentified before defining it. As an example, defining a long variablefor carrying values that may be accommodated in a short type may beavoided if the probable range of values for the variable is known. Inorder to achieve this objective, a type may be assigned by such asanticipating the max value that may need to be transferred. However, inother embodiments such as in cases where anticipation of the maximumvalue is not possible, the most accommodating type may be selectedaccordingly. Further, it may be advisable to take care of underflows andoverflows in code which may involve numeric computation. This may behelpful in avoiding assignment of negative values to bind objectmembers, which may not be supported by the engine.

In an example, the TyLV protocol may include inheritance support forstreaming. Further, as a protocol change, negative values and floatsupport may be enabled. Also, the TyLV protocol may support prependingof runtime class type information to the actual data of that class type.This may be similar to serialization of an object in Java, and mayenable the decoding engine to identify a correct actual bind object typeor the list content object type.

An example of a valid POJO may be defined as:

Class ValidBindObject implements TyLVBindObject{ public String member1 ;public int member2 ; public AggregateObject member3 ; publicAnotherAggregateObject member4 ; public AnotherAnotherAggregateObjectmember5 ; public static class AggregateObject implements TyLVBindObject{public int member1 ; public String member2 ; } public classAnotherAnotherAggregateObject implements TyLVBindObject{ public intmember1 ; public String member2 ; } }

An example of an invalid POJO may be defined as:

class InvalidBindObject implements TyLVBindObject{ @1 public finalString member1 ; &&1 public static int member2 ; &&2 private int member3; &&3 public TyLVBindObject invalidAggregateMember4 = newTyLVBindObject( ) {@2 }; public InvalidBindObject (String value){ @3//whatever } public TyLVBindObject invalidAggregateMember5; @4

In the above examples, error points may be indicated such as by @XX andignored points may be indicated such as by &&. In an example, theseerrors may be runtime errors.

In accordance with exemplary and non-limiting embodiments, this documentdiscloses an MTP 5.x wallet and widget infrastructure model for mPaymentand mCommerce ecosystems. The MTP 5.X model may address and incorporatecustomer feedback on various features associated with an MTP 4.xabstraction model which may be related to committing to an abstractionmodel and reliance on middleware to build phone application. Some of theexemplary features of MTP 4.x that the model 5.x may address may be suchas but are not limited to customer desire to such as incorporate newphone features instantly without waiting for support from middlewareproviders; expensive training on a new, proprietary tool that mayinclude Human Resource (HR) related concerns; considerable rework andcost required in migrating away from the middleware.

In an example, the MTP 5.x model may support development simplicity,lower on-going maintenance effort, and an ability to support third partywidgets.

In an example, an MTP 5.x client may provide flexibility to developersto such as use one or more of the capabilities of the model. Thearchitecture may comprise stand-alone libraries that may containinfrastructure components such as Comms, NFC, Crypto and the like. Inaccordance with the MTP 5.x model, these components may be extractedinto stand-alone libraries. Further, parts or the entire mobileapplication may be built entirely on a native phone operating system.These parts may include user interface components, business logic, orany other components of the mobile application. Further, the widgetsprovided in the model may be supported through such as a phoneindependent application programming interface (API) layer. In anexample, the widgets may also use application programming interfaces(APIs) that may be offered by the mobile application, which may be inaddition to the application programming interfaces (APIs) available fromthe runtime. In an example, the model architecture may allow clientruntime, to be bundled within the mobile application. In an alternateexample, the mobile application may be built on the runtime.

In an example, the modularity of the MTP 5.x architecture may allowthree types of deployment for a mobile application. These threedeployment models may include such as an independent native applicationmodel, a hybrid ecosystem application model, and a cross platformecosystem application model. These models may be discussed in greaterdetail in succeeding description of the invention as follows.

The independent native application model OM1.1 (hereafter referred to asmodel 1 for simplicity) may be targeted to customers that may not needwidgets. This may provide a unique and custom user experience for suchcustomers. The model1 may include a phone operating system environmentincluding such as a plurality of mobile libraries. The libraries may beused by such as a mobile application such as an mWallet clientapplication. The mobile libraries may facilitate the customers toleverage the existing mobile libraries to build mobile applicationcomponents, such as a Crypto component or a Comms component, instead ofhaving to build the components from scratch. The libraries may bedesigned to facilitate mobile transactions and wallet relatedcapabilities. In an example, the mobile libraries may be coupled to theMTP server and may provide a complete out of the box infrastructuresolution for the customers of the mobile application.

As an example of the independent infrastructure support capabilities ofthe model 1, a crypto component may be built using this model such thatit may provide more than just wrappers over the native cryptooperations. The component may perform as a security component that mayhandle functions such as key generation, key management, personalidentification number (PIN) management and the like.

In an example, each of the libraries may be incorporated by itself,without any external dependency. The developers of the mobileapplication OM214 may integrate best of the breed libraries from thirdparty sources to provide the complete mobile application solution OM214.

The hybrid ecosystem application deployment model (also referred to as amodel 2 hereafter for simplicity of the description) may be targeted tocustomers that may require a unique, native experience along with acapability of service extensibility through the widgets. The model 2 mayinclude a mobile application and application programming interface whichmay be built such as over a phone operating system. In accordance withthe model 2, the entire client runtime software may be bundled with themobile application. The phone operating system may include a pluralityof libraries which may be used by the mobile application such as themWallet client application. The model 2 may also include the widgetsthat may be supported by such as a phone independent API. In an example,the model 2 may be capable to not compromise on user experience,performance or application functionality. The model may have higherdevelopment costs as a variable portion of the mobile application suchas the mWallet may be custom built for each phone platform.

In an example, the client runtime software of the model 2 may switchbetween native screens and screens built using extensible markuplanguage (XML) through a toolkit. The runtime may also allow integrationof actions developed such as in JavaScript, that may be through thetoolkit, and actions developed through native implementations. In thismanner, in an exemplary embodiment a large part (such as 80 percent) ofthe mobile application may leverage the runtime and toolkit relateddevelopment efficiencies while the rest may be built native for adifferentiable experience. The widgets may be built using a toolkit suchas using XML, cascading style sheets (CSS), and JavaScript. This mayallow developers a greater flexibility while staying updated with allphone platforms as the developers may bypass the runtime to createfunctionality that may not be available through the runtime. In anexample, the widgets may be able to use development support through theruntime. However, the widgets may also use the mobile application'sexposed application programming interfaces (APIs) for development. Thewidget toolkit may make it easier and smoother for ecosystem serviceproviders to develop the widgets. The application tools may be enhancedto support hybrid assembly and packaging.

FIG. OM1.3 illustrates a cross platform ecosystem application deploymentmodel in accordance with the MTP 5.x architecture. The cross platformecosystem application deployment model (also referred to as model 3hereafter for simplicity) may be a cost effective model that may betargeted to customers such as whose requirements may be fulfilled by thecapabilities of the client application runtime. The model may include amobile application and API built over such as a phone operating systemthat may include multiple libraries. Further, in accordance with thecross platform ecosystem application deployment model, multiple widgetsmay be supported by such as a phone independent API. Further, inaccordance with this model, both the client application and widgets maybe built using toolkits that may support cross-platform development.

In an example, the model 3 may be similar to a deployment model inaccordance with an MTP 4.x version of the MTP architecture with theexception that MTP 5.x may facilitate or support platform extensions asopposed to the MTP 4.x version.

FIG. 54 illustrates a high level block diagram of various subsystems ofa payment facilitator system 5400 as used in the deployment of a servicedelivery platform ecosystem (hereafter referred to as SDP 5408 for thepurpose of simplicity of description and discussed later), in accordancewith an exemplary embodiment of the present invention.

In accordance with an exemplary embodiment, various subsystems withinthe payment facilitator 5400 may include a point of sale (POS) 5402terminal, application (APP) 5404 such as a mobile application 5404, SDP5408, several issuer systems such as including the depicted issuersystem 1 5410, issuer system 2 5412, and issuer system 3 5414, withoutlimitations. The various subsystems may be connected over a network suchas a payment processing network 5418. The APP 5404 can further includeone or more widgets.

The payment facilitator 5400 of FIG. 54 may facilitate in leveragingmobile phones at a physical merchant POS 5402 such as the POS 5402 tosuch as enact payment of goods and services. The mobiles phones may thusbe utilized to facilitate payment as an alternative to plastic-basedphysical transaction cards such that a payment transaction can beprocessed, routed, and settled through the payment facilitator. As such,a merchant may be facilitated with the use of the payment facilitator5400 as it may reduce the overall costs associated with a transaction.Also, the payment facilitator 5400 may be advantageous for a customer ora consumer as it provides a rewarding shopping or transaction experiencethat can save money such as through offers, loyalty, or the likepromotional schemes or overall reduced prices offered by the merchantsdue to savings obtained by the merchants from the payment process withthe use of the payment facilitator 5400.

The payment facilitator 5400 may provide consumers a choice withmultiple payment products across several issuers like issuers. Thepayment facilitator 5400 may provide an improved payment experience tothe consumers as compared to other transaction modes and may be assimple as pulling out such as a physical leather wallet, selecting acard, and swiping it over a machine. Also, the payment facilitator 5400may provide a secured platform with better risk management as comparedto conventional plastic cards and payment options. The merchants mayalso be facilitated with the use of the payment facilitator 5400 such asmaking several available for the merchants with respect to theirindividual POS equipment. In addition, several promotional schemes orvalue added services such as coupons, offers, loyalty, and receipts canbe integrated into the payment facilitator 5400 to provide a holisticretail experience for the merchants as well as the consumers.

In accordance with an exemplary embodiment, FIG. 54 depicts the paymentfacilitator 5400 from a payment perspective. However, as the paymentfacilitator 5400 scales similar models of the payment facilitator 5400may be applied for other non-payment instruments such as coupons,loyalty cards, and the like.

In an embodiment of the present invention, the APP 5404 as shown in FIG.54 may be a mobile application 5404. The mobile application 5404 caninclude such as a wallet (also referred to as virtual wallet) as one ofits components. A consumer can be associated with one or more suchwallets. The wallets may facilitate consumers such as during paymentprocesses for the sake of convenience, compactness, and interoperabilityprovided by the wallets. Each of the wallets may be configured to hold asubset of a consumer's transacting instruments. In accordance withvarious embodiments, the wallet may securely store and protect consumerpayment account information, organizing and managing lifecycle ofconsumer payment accounts, implement strong authentication as requiredto access the accounts, provide options for selection of a specificaccount for a transaction, execute the transaction with the POS 5402 orpayment gateway with the selected account, implement and enforcebusiness rules governing access to the accounts and transactions usingthese accounts. In accordance with several embodiments, several formsand implementations of the virtual wallets may be possible dependingupon various parameters such as including without limitations an entityhosting the wallet, a channel through which a consumer transacts andlocation where payment credentials are stored, and the like.

In an exemplary scenario, a consumer or a user can create a wallet suchas on a shopping store or website for example “merchant.com” and addpayment cards using such as a web portal. In an example, such a walletmay be referred to as an on-line wallet that may provide convenienceduring such as purchase of products only from “merchant.com”. It must beappreciated that the payment facilitator 5400 may facilitate theconsumers to add their pre-existing payment accounts to the virtualwallets by themselves. However, in some other cases such as merchantissued cards (e.g. gift cards), the payment accounts may be addedautomatically.

In some examples, an entity such as a bank or any other financialinstitution (FI) may establish their own versions of the virtual wallet.In such cases, the entity may take on a significant level of risk andindemnify the merchants from fraud since they may provide walletfunctionality such as holding an account, authenticating a user, cardselection, and the like, and are issues merely for payment account. Insuch cases, the wallets may thus be limited to self-issued instruments.

The wallets and each payment type of the wallets may be configured tocomply with such as defined business rules, interchange fees, PCIcompliance, and the like such as by mapping various standards andpayment pricing models across from plastic to the virtual wallets. In anembodiment, the wallets may be implemented in such as smart phones suchas implemented within or using capabilities of mobile handsets or othersuch handheld devices. This may facilitate extension of the virtualwallets from an on-line deployment to the physical POS 5402.

In accordance with the embodiments of the present invention, the walletmay be a component or a subsystem of the mobile application 5404 or thecontainer as described above. The mobile application 5404 (as shown inFIG. 54) may include several services and functions such as the walletwithout limitations. For example, a mobile application 5404 with thewallet as one of the several mobile services, one or more additionalservices or functions may be provided such as to create a motivationwithin a consumer to purchase. Therefore, while the additional servicesmay promote motivation to purchase, the wallet may provide thefunctionality required for the purchase to be completed or executed suchthat the focus of the wallet may be on purchases executed at the POS5402 such as a physical POS 5402.

FIG. 55 shows various components of the wallet, in an exemplaryembodiment of the present invention. The wallet of FIG. 55 can be termedas a software wallet 5500. In accordance with various embodiments anddepending on the design of the payment facilitator and the servicedelivery platform ecosystem 5502, the various components of the walletmay be variously located in any suitable combination of the mobile phoneor any other handheld device 5504, SDP 5508, or the issuer system 5510.Therefore, the wallet 5500 can be construed and viewed as a distributedcomponent or a combination of distributed components that can run acrossmultiple systems or subsystems such as shown in FIG. 55. As shown inFIG. 55, the wallet may include a vault 5512, a reference store 5514, awallet controller 5518, and a wallet view 5520.

The vault 5512 may be a secured storage associated with each individualpayment credential. In an embodiment, the vault 5512 may be consolidatedon a secure element. In another embodiment, the vault 5512 may bedistributed across several systems or subsystems such that eachsubsystem or system such as an issuer may retain control of the paymentcredential and release of such as single use tokens upon request. In anembodiment, the service delivery platform ecosystem may employ thedistributed model, however it must be appreciated that the use theconsolidated model may be possible and within the purview of theinvention.

The reference store 5514 may serve as a repository of reference datarelating to such as the contents of the wallet. The reference data mayinclude such as but is not limited to artwork and branding, issuerinformation, routing information (and reference identifiers), maskedaccount data, meta-data, and the like. In an embodiment, a subset ofthese data elements may be stored on such as the mobile phone such aswithin a memory of the mobile phone while the complete set or data maybe stored on a server associated with the SDP 5508 referred to as SDPserver (as discussed later in detail).

The wallet controller 5518 may be configured to implement such as awallet specific business logic and lifecycle. The wallet controller 5518may be configured to control and manage the wallet and provideinterfaces such APIs to external systems that may access the wallet.Additionally, the wallet controller 5518 may be configured to implementprotocols such as to communicate with the POS. For example, the walletcontroller 5518 may reside on the SDP server in a typical deployment ofthe service delivery platform ecosystem of the present invention.

The wallet view 5520 may be a user interface associated with the walletsuch as to facilitate access, interaction, population, and management ofthe wallets by respective users through means provided by the walletview 5520. The user interface provided by the wallet view 5520 may becreated separately and preferably consistently for each channel such asincluding but is not limited a mobile phone, web, IPTV, and the likethat may be used to access the wallet. In an embodiment of the presentinvention, the wallet view 5520 may be included in a containerapplication designed for and associated with the service deliveryplatform ecosystem. In an embodiment, the wallet view 5520 may beincluded in a web interface for the consumers linked through the servicedelivery platform ecosystem.

In an exemplary embodiment, the payment facilitator may be deployed in amobile wallet. The wallet may be deployed such as in mobilepayment-based systems such as the service delivery platform ecosystem5502 or the payment facilitator. The wallet 5500 may be configured so asto facilitate the consumers to choose a certified application to accessthe wallet such as the wallet associated with the payment facilitatorfrom the cloud to perform payments. In an embodiment, these payments maybe made at the POS. In another embodiment, these payments may be made ata remote locate location.

The wallet architecture may include such as the wallet view 5520, walletcontroller 5518, wallet vault 5512, application, reference storage 5514,service delivery platform 5508, a plurality of the issuer systems suchas the issuer system 5510-5514. The service delivery platform 5508 mayfurther include a master wallet, and several application wallets such asa first application wallet, a second application wallet, and the like.The application may include such as a first application 1, a secondapplication, and an application for the payment facilitator.

In an embodiment, the SDP 5508 architecture may include several SDPs5508 and SDP wallets with such as a hierarchical parent childrelationship among them. The SDPs 5508 may be configured to maintain aparent-child hierarchy with multiple wallets. Each of the applicationssuch as mobile applications may be linked to an independent walletinstance. The SDPs 5508 may be configured to maintain a parent-childrelationship between such as a parent payment facilitator wallet andchild application wallets corresponding to the respective parentwallets. In such a scenario, the architecture may be designed so as todefine a single SDP 5508 and single wallet view 5520 to a consumer suchthat the consumer perceives as if interacting with a single wallet andSDP 5508 that is used from within different applications or differentwallet views 5520.

In a hierarchical architecture as discussed above, all instruments maybe provisioned to the parent payment facilitator wallet i.e. to thereference store 5514 of the parent wallet of the payment facilitator.The actual wallet vault 5512 may be configured to remain with and undercontrol of the issuer systems 5510. However, in an embodiment,non-sensitive information may be provisioned to the SDP 5508. The childwallets may be configured to have their own reference stores 5514 suchas to enable a filtered view on the reference store 5514 of the parentwallet of the payment facilitator.

In embodiments, various wallet lifecycle rules such as PIN length,allowed PIN retried, and the like may be configurable independently foreach wallet within guidelines such as set by the payment facilitator.The mobile application may request a token from the SDP 5508 at the timeof payment. The SDP 5508 may be configured to use an enterprise servicebus (ESB) to retrieve a token for the payment account. The token may bea one-time token such as generated by the issuer system. The request fortoken retrieval and generation may be associated with a strongauthentication process by the SDP 5508 and an optional additionalauthentication available to the issuer system. The token may then beused at the POS through one of the available channels. In an embodiment,the individual mobile applications may communicate consumer servicesfrom the SDP 5508 through standard web services in order to access thecorresponding wallet.

In accordance with some exemplary and non-limiting embodiments of thewallet architecture, the issuers may be involved in safeguarding paymentcredentials and issuing the tokens. The issuer may be allowed to controlformat of the token and may include additional security measures asappropriate and relevant. Further, the issuers may have minimal impacton chargeback and other exception scenarios as the issuer may bedirectly involved in provisioning and payment flows. The walletarchitecture may also provide wallet accessibility from multiple mobileapplications such as from the multiple wallet views 5520. Also, duringauthentication, each wallet may be authenticated independently with suchas independent passcodes and may be managed or activated or locked orsuspended and the like independently while still providing a user with aconsistent user experience. The wallet architecture may also enable aconfigurable rule-based filtering for filtering the reference stores5514 for each child wallet thereby allowing a merchant to have anallowed subset of all the user's payment cards. Also, the architecturemay facilitate default accounts to be easily set as per the respectivewallets separately. The wallet architecture may also enable automaticpopulation of the consumer's branded container of the paymentfacilitator with payment credentials in the consumer's master wallet.This may facilitate management of all accounts from a single location.Further, through this single location-based management, the users canalso identify their other applications that are used to access theirwallet of the payment facilitator.

The SDP 5508 as discussed and referred above, and shown in FIG. 54 maybe configured as a system that may be configured to package and deliverservices to the consumers through several channels. The SDP 5508 mayfacilitate an organized, easy to consume manner packaging and deliveryof the services through the multiple channels. The SDP 5508 may beenabled such as in a mobile payment domain. The SDP 5508 may beconfigured to perform such as enrolment, know-your-customer (KYC), andcreation of a user wallet instance. The SDP 5508 may be configured tomanage the lifecycle of the wallet along with linkages to various endpoint devices. The SDP 5508 may be configured to such as providestandardized interface to consumers for service discovery and selection.The SDP 5508 may be configured to such as offer issuer governedenrollment and provisioning of services in a uniform manner. The SDP5508 may be configured to such as implement strong authentication,security and trust models around service provisioning and consumption.The SDP 5508 may be configured to maintain detailed audit trails, logs,and transaction records for such as the services and wallet events, andthe like. The SDP 5508 may be configured to onboard individual serviceproviders, aggregate disparate service hosts, enforce serviceimplementation standards, and manage overall growth of the ecosystem,and perform several other functions. The functions and configurations ofthe SDP 5508 discussed here are merely exemplary without limitations. Instill some embodiments, the SDP 5508 may be configured to performseveral other functions and tasks based on such as the nature of theservices delivered by the SDP 5508. For example, the services related tothe financial transactions may have extra mandatory requirements forsecurity and reliability such that the SDP 5508 may be configured toenhance the security related tasks while delivering the financialservices. Furthermore, the SDP 5508 may be configured to further enhancesystem scalability and redundancy while delivering services to public inlarge.

The SDP 5508 may be designed to include various components specificallyfor the payment facilitator in an exemplary embodiment of the SDP 5508ecosystem deployment based on the MTP methods and systems describedherein including wallets, containers, MTP servers, service providers andthe like. In an example, there may be several components workingtogether to fulfill the SDP server functions. The components may all bedeployed in a highly secure, highly scalable, high availabilityenterprise server configuration. In an example, the ESB may standardizeand interconnect multiple partners and systems from which services maybe consumed and delivered to the mobile container. Each partner serviceprovider may be on-boarded through a series of steps that are modeled inthe SDP 5508. These steps may be defined by the payment facilitator andbe governed by the nature of the service offering (e.g. payment, offers,loyalty, etc.).

Various exemplary components of the payment facilitator SDP 5508 may bedescribed herein. In an example, the payment facilitator SDP 5508 mayinclude a communication component. The communication component may dealwith the communication protocols, codec, serialization, enveloping, andcomplexities of packet switched communication with the mobileapplication over multiple data channels. In an example, the paymentfacilitator SDP 5508 may include a message bus & notification component.The message bus & notification component may support produce/consumerbased model for object exchange, along with message structures, with themobile client. In an example, the message bus & notification componentmay also facilitate push notifications, alerts, etc. allowing the SDP5508 to proactively reach the container application to perform someactivity. In an example, the payment facilitator SDP 5508 may include asecurity/authentication component. The security component may facilitateimplementation of the security related designs for strongauthentication, data privacy, confidentiality/privacy, data integrity,and the like as they relate to the overall trust models and riskmanagement of the services being delivered. In an example, the paymentfacilitator SDP 5508 may include an over-the-air (OTA) provisioningcomponent. The OTA provisioning may be configured for dealing with theover-the-air provisioning and delivery of the application, widgets,instruments (payment, offers, loyalty, tickets, and the like) and proxyservices for tokenization of the instruments. In an example, the paymentfacilitator SDP 5508 may include an OTA TSM proxy component. The OTAtrusted service manager (TSM) proxy component may be required only in asecure element (such as illustrated in FIG. 55) based ecosystems forover the air provisioning of applets and managing the secure elementsecurity domains. In an example, the OTA TSM proxy may typicallyinterface with an external third party TSM. In an example, the paymentfacilitator SDP 5508 may include a wallet and widget managementcomponent. The wallet and widget management may create and manage thelifecycle of a consumer's wallet, association of the wallet with one ormore devices, and personalizing the application with one or more widgetsand the lifecycle of those widgets. In an example, the paymentfacilitator SDP 5508 may include a transaction engine. The transactionengine may be configured for dealing with transactional reliabilityacross the wireless channel and maintaining a complete audit trail ofthe services being delivered. The transaction engine may facilitatereceipt and other associated transactional services. In an example, thepayment facilitator SDP 5508 may include an instrument managementcomponent. The instrument management component may be configured formanaging the lifecycle of individual instruments that a consumerpopulates in their wallet. In an example, the payment facilitator SDP5508 may include a location and geo-fencing component. The location andgeo-fencing component may assist the service providers in setting upgeo-fences and opt in location-based services. In an example, thelocation and geo-fencing component may generate triggers for the serviceproviders when consumers enter the geo fences based on which targetedservices can be delivered. In an example, the payment facilitator SDP5508 may include an augmented reality component. The augmented realitycomponent may provide unique and advanced user experience infrastructurethat may be incorporated within the wallet and widgets.

In an exemplary embodiment of the SDP 5502 ecosystem deployment based onthe MTP methods and systems described herein the message definitions maybe created for the ESB that may enforce standards and protocols that maybe created for the payment facilitator. The service providers may thenimplement the ESB connectors such as to expose their services to theplatform in a way that the various stakeholders of the paymentfacilitator infrastructure may consume the services.

In an exemplary embodiment of the SDP 5502 ecosystem deployment based onthe MTP methods and systems described herein, the service provisioningfrom the SDP 5508 may a set of basic steps. In some embodiments, somesteps may be optional depending upon the nature of the service and thepreference of the service provider. In an example, a first step mayinclude registration and KYC. At this step, the consumer may request aservice (wallet, payment account, etc.) and provide the requiredpersonal information in order to perform relevant KYC steps. Further toregistration and KYC, a service approval may be required for furtherprocessing. The service approval may require a service partner toapprove the service request after following relevant internal businessprocesses. The service approval may create relevant credentials for theconsumer and any service payloads. In some embodiments, the serviceapproval may be optional. A next step may be service provisioning. Atthis step a service may be provisioned to the user. The serviceprovisioning may include delivering components of the service to aconsumer phone or creating necessary updates on a consumer server. Theservice provisioning may be followed by service activation. The serviceactivation may be required to confirm that the service is provisionedcorrectly, to the correct user, and all states are set to “READY” forthe service to be consumed. In some embodiments, the service activationmay be optional. A next step may be service execution. At this step, theconsumer may start using the service from within their application. Anext step may be service management, which may include all updates andlifecycle components of the service.

In an exemplary embodiment of the SDP 5502 ecosystem deployment, the SDP5508 architecture for payment facilitator may allow the service partnersto configure and control their service products in a way that theycomply with the payment facilitator specifications (through the ESBinterfaces), but control their own process, service data, and businessrules. Such a control and management may be essential for an openecosystem that may attract a critical mass of service providers.

In an exemplary embodiment of the SDP 5502 ecosystem deployment based onthe MTP methods and systems described herein including wallets,containers, MTP servers, service providers and the like, there may be amobile phone stand-in may conduct a transaction at a POS. A high-levelmobile payment scenario flows is described herein. However, it should benoted that these steps are high level and may be re-arranged to suite aspecific user experience, and other steps may be inserted in order toprovide additional functionality. The purpose of this disclosuredocument is to demonstrate various deployment options for the paymentfacilitator and not specific use cases for payment.

In exemplary and non-limiting embodiments, for affecting the mobilempayment a consumer may have to first arrive at checkout terminal anditems to be purchased may be scanned. The consumer may then launch amobile application on the mobile phone and may be required to enterlogin credential (for example, PIN, password, or passphrase and thelike). The mobile application may connect to the SDP 5508 to validatelogin and authenticate consumer and device. The mobile application maypresent a list of payment options that may be stored in the consumer'smobile wallet upon successful authentication of the service and device.The consumer may be required to choose a payment option (for example, agift card) from the list provided to the consumer.

After the payment option may be chosen the mobile application mayinitiate a checkout process with the POS. The payment option may beinitiated via multiple implementation options depending upon thechannels that may be supported by the POS and the mobile phone. In anexample, a tokenized NFC may be used for initiating the checkoutprocess. The POS may be near field communication (NFC) enabled for thisoption. The mobile application may request the SDP 5508 for a token forthe selected payment card. The SDP 5508 may authenticate the mobileapplication and may route the request to corresponding token generatorfor a concerned issuer. The consumer may be required to tap the phone atthe NFC enabled POS to transmit token. In an example, the NFC may beinternational organization for standardization (ISO) and theinternational electrotechnical commission (IEC) standard 18092. In anexample, a secure element NFC (SE NFC) may be used for initiating thecheckout process. In this case, the consumer may be required to tap thephone at NFC enabled POS with the payment credential stored in the SE onthe phone. In an example, the NFC may be international organization forstandardization (ISO) and the international electrotechnical commission(IEC) standard 14443. In an example, a QR code scan may be used forinitiating the checkout process. The mobile application may request theSDP 5508 for a token for the selected payment card. The SDP 5508 mayauthenticate the mobile application and may route the request tocorresponding token generator for a concerned issuer. The mobileapplication may convert token into a 2D bar code that is scanned by thePOS. In an example, a virtual reader may be used for initiating thecheckout process. The mobile application may capture the merchant, POS,and transaction information by scanning a QR code or tapping an NFC tag.The mobile application may send the data along with selected card OTA toSDP 5508. The SDP 5508 may request token, and send the token along withother information to POS through a back-end process.

A next step after initiating the checkout process may require the POS toprocesses the transaction and route the process to the paymentfacilitator. The payment facilitator may route the transaction to theissuer of the payment card at a next step. The issuer may authorize thetransaction and approval may be delivered to the POS at a next step. ThePOS may confirm the transaction and delivers a receipt. In an example,the receipt may be printed, electronically delivered to the mobileapplication or e-mailed at a verified email address. The delivery of thereceipt may complete the Mpayment process and the consumer may leave thecheckout terminal with the items purchased.

In an exemplary embodiment of the SDP 5502 ecosystem deployment based onthe MTP methods and systems described herein including wallets,containers, MTP servers, service providers and the like, variousdeployment models may be employed by the merchants. The merchants may beat various stages in their individual mobile strategies; and therefore,it may be required to support multiple deployment models for merchantsso as to adopt a common payment facilitator. The payment facilitatoralong with each issuer may approve and certify the entire transactionpath from a security and risk management perspective such as to keep thetransaction costs low. Therefore, it may be important to have a commonplatform that may be shared amongst all participating merchants.

In exemplary and non-limiting embodiments, there can be three modelsthat may be used for deployment. The three models may co-exist and amerchant may adopt one or more of these models depending upon theirindividual strategies. In exemplary and non-limiting embodiments, moreor less than the three models described herein may be deployed. Inexemplary and non-limiting embodiments, the models may be configured forimplementing payments, offers, loyalty offers and the like.

In an exemplary embodiment of the SDP 5502 ecosystem deployment based onthe MTP methods and systems described herein, the deployment model maybea merchant application with a child payment facilitator wallet. Theconsumers may be required to pay at a POS using their existing,in-market merchant mobile applications linked to their primary paymentfacilitator wallet through direct child wallets that are provisioned andmanaged by the SDP 5508 wallet platform. The child wallets may beindependently configured but linked to the master wallet. In an example,the existing merchant mobile applications interface directly with theSDP 5508, through the OTA web service interfaces. The SDP 5508 mayprovide authenticated, controlled, and filtered access to the consumer'spayment facilitator wallet and the merchant application may be used fortransaction at the POS. In an example, the SDP 5508 may aggregatemultiple payment issuers supporting multiple payment channels andmanages both the consumer's parent payment facilitator wallet and childmerchant wallet.

In an exemplary embodiment of the SDP 5502 ecosystem deployment based onthe MTP methods and systems described herein, the deployment model maybea merchant application with a merchant wallet. The merchant may usetheir independent third party wallet within their mobile application andmay access the payment credentials from the master payment facilitatorwallet.

In an exemplary embodiment of the SDP 5502 ecosystem deployment based onthe MTP methods and systems described herein, the deployment model maybebased in a payment facilitator container. The consumers may pay using apayment facilitator branded mobile application that may automaticallyget populated from the SDP 5502 and provide consumers with a uniformview into their parent payment facilitator wallet. The SDP 5502 mayaggregate multiple payment issuers supporting multiple payment channelsand manage the consumer's payment facilitator wallet. In an example, thepayment facilitator mobile application may interact with merchant POS toperform transactions without any additional development by merchants. Inan example, the merchants and issuers may optionally create their ownwidgets to run within the payment facilitator application to createcustom experiences.

FIG. 56 illustrates a high level block diagram of the deployment model5600 maybe based in a payment facilitator container.

In accordance with the illustrated embodiment, various subsystems withinthe payment facilitator may include a point of sale (POS) 5602,application (APP) 5604 such as a mobile application 5604, SDP 5608,several issuer systems such as including the depicted issuer 1 system5610, issuer 2 system 5612, and issuer 3 system 5614, withoutlimitations. The various subsystems may be connected over a network suchas a payment processing network 5618. The APP 5604 may further include afirst widget 5620, a second widget 5622, and a wallet 5624.

The illustrated embodiment may be one example of a payment facilitatorpayment guideline that may have to be managed across multiple issuersystems such as the issuer systems 5610-5614 and multiple merchants. Theconsumer may not be aware of complex back end operations of mobiletransactions in order to create a simple experience of “Select card andPay”. The payment facilitator brand may be created and marketed througha payment facilitator wallet container application 5604. In anembodiment, the merchants may promote the payment facilitator standardas a payment acceptance brand. Ina n example, multiple issuers 5610-5614may be supported with diverse payment products and multiple POS 5602channels giving consumers a choice of payment options that may fit theirneeds across multiple merchants. The payment facilitator container mayrequire a minimal effort on the part of merchants to accept the paymentfacilitator payment options. The POS 5602 side-work may be required aswidgets may be optional. The payment facilitator container may ensurepayment processing in compliance to payment facilitator guidelines andstandards for POS 5602 based transaction.

The payment facilitator container model may leverage the full power ofthe SDP the back and front-end aggregation of multiple serviceproviders. As illustrated in FIG. 56 a payment facilitator brandedmobile application 5604 (container) may be built using the MTP wallettoolkit.

The container may include a wallet implementation that may incorporatethe payment facilitator specifications. The wallet may get automaticallypopulated from the SDP as consumers create their payment facilitatorwallet. In an embodiment, the payment facilitator container may be usedto make payments at a payment facilitator compliant POS 5602 without anyfurther development by the merchants. In an embodiment, the merchantsmay have an ability to create widgets using the MTP toolkit that may bespecifically designed to provide a merchant centric user experience atthe POS 5602. The widget creation may be at the merchant's discretionand may be implemented or added at any time. The SDP may aggregate andallow for the on boarding of multiple issuers 5610-5614, and may allowthe merchants to define their payment facilitator compatible paymentproducts and other value added services (VAS). During such on boarding,the issuers 5610-5614 may select the POS 5602 interaction protocols thatmay be supported for each payment product. The POS 5602 interactionprotocols may determine which merchants may accept which paymentproducts as at least one of the issuer-selected protocols may have to besupported by the merchant's POS 5602 channels, for example, NFC, BarCode, OTA, and the like.

In some exemplary embodiments, the SDP may be configured to manage a3-dimensional matrix. The matrix may be configured for merchant's POS5602 supported proximity channels, for example, NFC, 2D Bar Code, OTA,and the like. The matrix may be configured for merchant POS 5602capability. The matrix may be configured for issuer approved channels.

In an exemplary embodiment of the SDP ecosystem deployment based on theMTP methods and systems described herein, the payment facilitator may beused for mobile payment with a merchant widget. In exemplary andnon-limiting embodiments, for affecting the mobile mpayment a consumermay have to first arrive at checkout terminal and items to be purchasedmay be scanned. The consumer may then launch a payment facilitatormobile application 5604 on the mobile phone and may be required to entera payment facilitator managed login credential (for example, PIN,password, or passphrase and the like). The consumer may then be requiredto select a merchant from the dashboard of pay-enabled merchants. Themerchant widget may be launched in a “Pay” mode and present a list ofpayment options accepted at the merchant POS 5602. The list of paymentoptions may be a filtered view on the locally stored options in theconsumer's wallet as a part of the payment facilitator container. Theconsumer may be required to choose a payment option (for example, a giftcard) from the list provided to the consumer.

The merchant widget may request a transaction payload from the SDP thatmay be sent to the merchant POS 5602 for the corresponding channelsupported by the merchant POS 5602. The SDP may transfer a transactionpayload formatted for the merchant POS 5602. In exemplary embodiments,the transaction payload may be in form of coupons, loyalty, and thelike. The transaction payload may be attached based on the merchant POS5602 ability. The merchant widget may initiate a checkout process withPOS 5602 upon receipt of the transaction payload. The initiation of thecheckout process may be done similar to as described above withreference to example with no merchant widget generation.

A next step after initiating the checkout process may require the POS5602 to processes the transaction and route the process to the paymentfacilitator. The payment facilitator may route the transaction to theissuer of the payment card at a next step. The issuer may authorize thetransaction and approval may be delivered to the POS 5602 at a nextstep. The POS 5602 may confirm the transaction and delivers a receipt.In an example, the receipt may be printed, electronically delivered tothe mobile application 5604 or e-mailed at a verified email address. Thedelivery of the receipt may complete the mpayment process and theconsumer may leave the checkout terminal with the items purchased.

In an exemplary embodiment of the SDP ecosystem deployment based on theMTP methods and systems described herein, a user interface (UI) in thepayment facilitator container. The UI concept described herein may beused as reference for an exemplary embodiment only. The UI concept maybe subject to changes depending upon user requirement. In an exemplaryembodiment, the UI concept may include a wallet controlled mode and awidget controlled mode. The wallet control mode may be configured sothat the payment facilitator wallet may control the merchant POS 5602interaction and payment experience. The wallet control mode maycircumvent the need for merchants to create widgets. The widget controlmode may be configured so that a merchant may create a widget and thewidget may will control the interaction and payment experience at themerchant POS 5602.

The methods and systems described herein may be deployed in part or inwhole through a machine that executes computer software, program codes,and/or instructions on a processor. The processor may be part of aserver, client, network infrastructure, mobile computing platform,stationary computing platform, or other computing platform. A processormay be any kind of computational or processing device capable ofexecuting program instructions, codes, binary instructions and the like.The processor may be or include a signal processor, digital processor,embedded processor, microprocessor or any variant such as a co-processor(math co-processor, graphic co-processor, communication co-processor andthe like) and the like that may directly or indirectly facilitateexecution of program code or program instructions stored thereon. Inaddition, the processor may enable execution of multiple programs,threads, and codes. The threads may be executed simultaneously toenhance the performance of the processor and to facilitate simultaneousoperations of the application. By way of implementation, methods,program codes, program instructions and the like described herein may beimplemented in one or more thread. The thread may spawn other threadsthat may have assigned priorities associated with them; the processormay execute these threads based on priority or any other order based oninstructions provided in the program code. The processor may includememory that stores methods, codes, instructions and programs asdescribed herein and elsewhere. The processor may access a storagemedium through an interface that may store methods, codes, andinstructions as described herein and elsewhere. The storage mediumassociated with the processor for storing methods, programs, codes,program instructions or other type of instructions capable of beingexecuted by the computing or processing device may include but may notbe limited to one or more of a CD-ROM, DVD, memory, hard disk, flashdrive, RAM, ROM, cache and the like.

A processor may include one or more cores that may enhance speed andperformance of a multiprocessor. In embodiments, the process may be adual core processor, quad core processors, other chip-levelmultiprocessor and the like that combine two or more independent cores(called a die).

The methods and systems described herein may be deployed in part or inwhole through a machine that executes computer software on a server,client, firewall, gateway, hub, router, or other such computer and/ornetworking hardware. The software program may be associated with aserver that may include a file server, print server, domain server,internet server, intranet server and other variants such as secondaryserver, host server, distributed server and the like. The server mayinclude one or more of memories, processors, computer readable media,storage media, ports (physical and virtual), communication devices, andinterfaces capable of accessing other servers, clients, machines, anddevices through a wired or a wireless medium, and the like. The methods,programs or codes as described herein and elsewhere may be executed bythe server. In addition, other devices required for execution of methodsas described in this application may be considered as a part of theinfrastructure associated with the server.

The server may provide an interface to other devices including, withoutlimitation, clients, other servers, printers, database servers, printservers, file servers, communication servers, distributed servers andthe like. Additionally, this coupling and/or connection may facilitateremote execution of program across the network. The networking of someor all of these devices may facilitate parallel processing of a programor method at one or more location without deviating from the scope. Inaddition, any of the devices attached to the server through an interfacemay include at least one storage medium capable of storing methods,programs, code and/or instructions. A central repository may provideprogram instructions to be executed on different devices. In thisimplementation, the remote repository may act as a storage medium forprogram code, instructions, and programs.

The software program may be associated with a client that may include afile client, print client, domain client, internet client, intranetclient and other variants such as secondary client, host client,distributed client and the like. The client may include one or more ofmemories, processors, computer readable media, storage media, ports(physical and virtual), communication devices, and interfaces capable ofaccessing other clients, servers, machines, and devices through a wiredor a wireless medium, and the like. The methods, programs or codes asdescribed herein and elsewhere may be executed by the client. Inaddition, other devices required for execution of methods as describedin this application may be considered as a part of the infrastructureassociated with the client.

The client may provide an interface to other devices including, withoutlimitation, servers, other clients, printers, database servers, printservers, file servers, communication servers, distributed servers andthe like. Additionally, this coupling and/or connection may facilitateremote execution of program across the network. The networking of someor all of these devices may facilitate parallel processing of a programor method at one or more location without deviating from the scope. Inaddition, any of the devices attached to the client through an interfacemay include at least one storage medium capable of storing methods,programs, applications, code and/or instructions. A central repositorymay provide program instructions to be executed on different devices. Inthis implementation, the remote repository may act as a storage mediumfor program code, instructions, and programs.

The methods and systems described herein may be deployed in part or inwhole through network infrastructures. The network infrastructure mayinclude elements such as computing devices, servers, routers, hubs,firewalls, clients, personal computers, communication devices, routingdevices and other active and passive devices, modules and/or componentsas known in the art. The computing and/or non-computing device(s)associated with the network infrastructure may include, apart from othercomponents, a storage medium such as flash memory, buffer, stack, RAM,ROM and the like. The processes, methods, program codes, instructionsdescribed herein and elsewhere may be executed by one or more of thenetwork infrastructural elements.

The methods, program codes, and instructions described herein andelsewhere may be implemented on a cellular network having multiplecells. The cellular network may either be frequency division multipleaccess (FDMA) network or code division multiple access (CDMA) network.The cellular network may include mobile devices, cell sites, basestations, repeaters, antennas, towers, and the like. The cell networkmay be a GSM, GPRS, 3G, EVDO, mesh, or other networks types.

The methods, programs codes, and instructions described herein andelsewhere may be implemented on or through mobile devices. The mobiledevices may include navigation devices, cell phones, mobile phones,mobile personal digital assistants, laptops, palmtops, netbooks, pagers,electronic books readers, music players and the like. These devices mayinclude, apart from other components, a storage medium such as a flashmemory, buffer, RAM, ROM and one or more computing devices. Thecomputing devices associated with mobile devices may be enabled toexecute program codes, methods, and instructions stored thereon.Alternatively, the mobile devices may be configured to executeinstructions in collaboration with other devices. The mobile devices maycommunicate with base stations interfaced with servers and configured toexecute program codes. The mobile devices may communicate on a peer topeer network, mesh network, or other communications network. The programcode may be stored on the storage medium associated with the server andexecuted by a computing device embedded within the server. The basestation may include a computing device and a storage medium. The storagedevice may store program codes and instructions executed by thecomputing devices associated with the base station.

The computer software, program codes, and/or instructions may be storedand/or accessed on machine readable media that may include: computercomponents, devices, and recording media that retain digital data usedfor computing for some interval of time; semiconductor storage known asrandom access memory (RAM); mass storage typically for more permanentstorage, such as optical discs, forms of magnetic storage like harddisks, tapes, drums, cards and other types; processor registers, cachememory, volatile memory, non-volatile memory; optical storage such asCD, DVD; removable media such as flash memory (e.g. USB sticks or keys),floppy disks, magnetic tape, paper tape, punch cards, standalone RAMdisks, Zip drives, removable mass storage, off-line, and the like; othercomputer memory such as dynamic memory, static memory, read/writestorage, mutable storage, read only, random access, sequential access,location addressable, file addressable, content addressable, networkattached storage, storage area network, bar codes, magnetic ink, and thelike.

The methods and systems described herein may transform physical and/oror intangible items from one state to another. The methods and systemsdescribed herein may also transform data representing physical and/orintangible items from one state to another.

The elements described and depicted herein, including in flow charts andblock diagrams throughout the figures, imply logical boundaries betweenthe elements. However, according to software or hardware engineeringpractices, the depicted elements and the functions thereof may beimplemented on machines through computer executable media having aprocessor capable of executing program instructions stored thereon as amonolithic software structure, as standalone software modules, or asmodules that employ external routines, code, services, and so forth, orany combination of these, and all such implementations may be within thescope of the present disclosure. Examples of such machines may include,but may not be limited to, personal digital assistants, laptops,personal computers, mobile phones, other handheld computing devices,medical equipment, wired or wireless communication devices, transducers,chips, calculators, satellites, tablet PCs, electronic books, gadgets,electronic devices, devices having artificial intelligence, computingdevices, networking equipment, servers, routers and the like.Furthermore, the elements depicted in the flow chart and block diagramsor any other logical component may be implemented on a machine capableof executing program instructions. Thus, while the foregoing drawingsand descriptions set forth functional aspects of the disclosed systems,no particular arrangement of software for implementing these functionalaspects should be inferred from these descriptions unless explicitlystated or otherwise clear from the context. Similarly, it may beappreciated that the various steps identified and described above may bevaried, and that the order of steps may be adapted to particularapplications of the techniques disclosed herein. All such variations andmodifications are intended to fall within the scope of this disclosure.As such, the depiction and/or description of an order for various stepsshould not be understood to require a particular order of execution forthose steps, unless required by a particular application, or explicitlystated or otherwise clear from the context.

The methods and/or processes described above, and steps thereof, may berealized in hardware, software or any combination of hardware andsoftware suitable for a particular application. The hardware may includea general purpose computer and/or dedicated computing device or specificcomputing device or particular aspect or component of a specificcomputing device. The processes may be realized in one or moremicroprocessors, microcontrollers, embedded microcontrollers,programmable digital signal processors or other programmable device,along with internal and/or external memory. The processes may also, orinstead, be embodied in an application specific integrated circuit, aprogrammable gate array, programmable array logic, or any other deviceor combination of devices that may be configured to process electronicsignals. It may further be appreciated that one or more of the processesmay be realized as a computer executable code capable of being executedon a machine readable medium.

The computer executable code may be created using a structuredprogramming language such as C, an object oriented programming languagesuch as C++, or any other high-level or low-level programming language(including assembly languages, hardware description languages, anddatabase programming languages and technologies) that may be stored,compiled or interpreted to run on one of the above devices, as well asheterogeneous combinations of processors, processor architectures, orcombinations of different hardware and software, or any other machinecapable of executing program instructions.

Thus, in one aspect, each method described above and combinationsthereof may be embodied in computer executable code that, when executingon one or more computing devices, performs the steps thereof. In anotheraspect, the methods may be embodied in systems that perform the stepsthereof, and may be distributed across devices in a number of ways, orall of the functionality may be integrated into a dedicated, standalonedevice or other hardware. In another aspect, the means for performingthe steps associated with the processes described above may include anyof the hardware and/or software described above. All such permutationsand combinations are intended to fall within the scope of the presentdisclosure.

While the methods and systems described herein have been disclosed inconnection with certain preferred embodiments shown and described indetail, various modifications and improvements thereon may becomereadily apparent to those skilled in the art. Accordingly, the spiritand scope of the methods and systems described herein is not to belimited by the foregoing examples, but is to be understood in thebroadest sense allowable by law.

All documents referenced herein are hereby incorporated by reference.

1. A method comprising: disposing a plurality of distinct wallets in amemory of a personal mobile device; disposing at least one serviceprovider-specific application in the memory; executing at least one ofthe plurality of distinct wallets in a client runtime environment on thepersonal mobile device; and facilitating access to service providerservices through an interface of the at least one of the plurality ofdistinct wallets by activating, through the interface, the at least oneservice provider-specific application to execute in the client runtimeenvironment, whereby the activated service provider-specific applicationis granted exclusive access to a secure electronic transaction workflowof a service provider for accessing the service provider services. 2.The method of claim 1, wherein execution of at least one of the distinctwallets is suspended during the period of granting of exclusive access.3. The method of claim 1, wherein the interface of the at least one ofthe plurality of distinct wallets comprises a secure entry point for oneof the at least one of the plurality of service provider-specificapplications, the secure entry point managed by the client runtimeenvironment.
 4. The method of claim 3, wherein the client runtimeenvironment comprises a runtime environment provided by a walletcontainer executing on the personal mobile device
 5. The method of claim1, wherein facilitating access comprises presenting a menu of serviceprovider services in a user interface of the at least one of theplurality of distinct wallet.
 6. The method of claim 5, whereinactivating the at least one service provider-specific application is inresponse to an indication of a user selection of a service providerservice in the menu of service provider services.
 7. The method of claim1, wherein the service provider-specific application is issued by theservice provider through which the service provider services areaccessed.
 8. The method of claim 1, wherein the at least one serviceprovider-specific application provides a user of the mobile deviceaccess via one of the plurality of wallets to at least onebusiness-specific service of a service provider that issued the serviceprovider-specific application.
 9. The method of claim 1, wherein theclient runtime environment is provided by a wallet container executingon the personal mobile device.
 10. The method of claim 9, wherein the atleast one service provider-specific application comprises a widgetoperating within a runtime environment provided by the wallet container.11. The method of claim 9, wherein the interface of the at least one ofthe plurality of distinct wallets is provided by the wallet container tothe at least one of the plurality of service provider-specificapplications.
 12. The method of claim 1, wherein the client runtimeenvironment is adapted to deny access by the service provider-specificapplication to at least one other of the plurality of distinct wallets.13. The method of claim 1, wherein the client runtime environment isadapted to deny access by the service provider-specific application toat least one other service provider's secure electronic transactionworkflow.
 14. The method of claim 13, wherein the client runtimeenvironment is a mobile device operating system.
 15. The method of claim13, wherein the client runtime environment is by a wallet containerexecuting on the personal mobile device.
 16. The method of claim 1,wherein a portion of the plurality of distinct wallets are provided to awallet container of the mobile device over a network by a serviceprovider.
 17. The method of claim 1, wherein facilitating access toservice provider services is accomplished by interfacing with an APIlayer of one or more device-specific APIs.
 18. A method comprising:disposing a plurality of distinct wallets in a memory of a personalmobile device; disposing at least one service provider-specificapplication in the memory; executing on the personal mobile device atleast two of the plurality of distinct wallets in a client runtimeenvironment adapted to ensure isolated access to personal mobile deviceresources including the memory; and facilitating access to serviceprovider services through an interface of one of the executing distinctwallets by activating, through the interface, the at least one serviceprovider-specific application to execute in the client runtimeenvironment, whereby the activated service provider-specific applicationis granted exclusive access to a secure electronic transaction workflowof a service provider for accessing the service provider services. 19.The method of claim 17, wherein execution of the at least one of theplurality of distinct wallets is suspended during a period of grantingthe exclusive access.
 20. A method comprising: disposing a plurality ofdistinct wallets in a memory of a personal mobile device; disposing atleast one service provider-specific application in the memory; executingat least one of the plurality of distinct wallets in a client runtimeenvironment on the personal mobile device; facilitating access toservice provider services through an interface of the at least one ofthe plurality of distinct wallets by activating, through the interface,the at least one service provider-specific application to execute in theclient runtime environment, whereby the activated serviceprovider-specific application is denied access to the wallet based onthe client runtime environment receiving an indication of a walletaccess trigger occurrence.
 21. The method of claim 17, wherein executionof the at least one of the plurality of distinct wallets is suspendedduring a period of granting the exclusive access.